ServerConfiguration

@Serializable
data class ServerConfiguration(val logFileRetentionDays: Int, val isStartupWizardCompleted: Boolean, val cachePath: String? = null, val previousVersion: String? = null, val previousVersionStr: String? = null, val enableMetrics: Boolean, val enableNormalizedItemByNameIds: Boolean, val isPortAuthorized: Boolean, val quickConnectAvailable: Boolean, val enableCaseSensitiveItemIds: Boolean, val disableLiveTvChannelUserDataName: Boolean, val metadataPath: String, val preferredMetadataLanguage: String, val metadataCountryCode: String, val sortReplaceCharacters: List<String>, val sortRemoveCharacters: List<String>, val sortRemoveWords: List<String>, val minResumePct: Int, val maxResumePct: Int, val minResumeDurationSeconds: Int, val minAudiobookResume: Int, val maxAudiobookResume: Int, val inactiveSessionThreshold: Int, val libraryMonitorDelay: Int, val libraryUpdateDuration: Int, val cacheSize: Int, val imageSavingConvention: ImageSavingConvention, val metadataOptions: List<MetadataOptions>, val skipDeserializationForBasicTypes: Boolean, val serverName: String, val uiCulture: String, val saveMetadataHidden: Boolean, val contentTypes: List<NameValuePair>, val remoteClientBitrateLimit: Int, val enableFolderView: Boolean, val enableGroupingMoviesIntoCollections: Boolean, val enableGroupingShowsIntoCollections: Boolean, val displaySpecialsWithinSeasons: Boolean, val codecsUsed: List<String>, val pluginRepositories: List<RepositoryInfo>, val enableExternalContentInSuggestions: Boolean, val imageExtractionTimeoutMs: Int, val pathSubstitutions: List<PathSubstitution>, val enableSlowResponseWarning: Boolean, val slowResponseThresholdMs: Long, val corsHosts: List<String>, val activityLogRetentionDays: Int? = null, val libraryScanFanoutConcurrency: Int, val libraryMetadataRefreshConcurrency: Int, val allowClientLogUpload: Boolean, val dummyChapterDuration: Int, val chapterImageResolution: ImageResolution, val parallelImageEncodingLimit: Int, val castReceiverApplications: List<CastReceiverApplication>, val trickplayOptions: TrickplayOptions, val enableLegacyAuthorization: Boolean)

Represents the server configuration.

Constructors

Link copied to clipboard
constructor(logFileRetentionDays: Int, isStartupWizardCompleted: Boolean, cachePath: String? = null, previousVersion: String? = null, previousVersionStr: String? = null, enableMetrics: Boolean, enableNormalizedItemByNameIds: Boolean, isPortAuthorized: Boolean, quickConnectAvailable: Boolean, enableCaseSensitiveItemIds: Boolean, disableLiveTvChannelUserDataName: Boolean, metadataPath: String, preferredMetadataLanguage: String, metadataCountryCode: String, sortReplaceCharacters: List<String>, sortRemoveCharacters: List<String>, sortRemoveWords: List<String>, minResumePct: Int, maxResumePct: Int, minResumeDurationSeconds: Int, minAudiobookResume: Int, maxAudiobookResume: Int, inactiveSessionThreshold: Int, libraryMonitorDelay: Int, libraryUpdateDuration: Int, cacheSize: Int, imageSavingConvention: ImageSavingConvention, metadataOptions: List<MetadataOptions>, skipDeserializationForBasicTypes: Boolean, serverName: String, uiCulture: String, saveMetadataHidden: Boolean, contentTypes: List<NameValuePair>, remoteClientBitrateLimit: Int, enableFolderView: Boolean, enableGroupingMoviesIntoCollections: Boolean, enableGroupingShowsIntoCollections: Boolean, displaySpecialsWithinSeasons: Boolean, codecsUsed: List<String>, pluginRepositories: List<RepositoryInfo>, enableExternalContentInSuggestions: Boolean, imageExtractionTimeoutMs: Int, pathSubstitutions: List<PathSubstitution>, enableSlowResponseWarning: Boolean, slowResponseThresholdMs: Long, corsHosts: List<String>, activityLogRetentionDays: Int? = null, libraryScanFanoutConcurrency: Int, libraryMetadataRefreshConcurrency: Int, allowClientLogUpload: Boolean, dummyChapterDuration: Int, chapterImageResolution: ImageResolution, parallelImageEncodingLimit: Int, castReceiverApplications: List<CastReceiverApplication>, trickplayOptions: TrickplayOptions, enableLegacyAuthorization: Boolean)

Properties

Link copied to clipboard
@SerialName(value = "ActivityLogRetentionDays")
val activityLogRetentionDays: Int?

The number of days we should retain activity logs.

Link copied to clipboard
@SerialName(value = "AllowClientLogUpload")
val allowClientLogUpload: Boolean

A value indicating whether clients should be allowed to upload logs.

Link copied to clipboard
@SerialName(value = "CachePath")
val cachePath: String?

The cache path.

Link copied to clipboard
@SerialName(value = "CacheSize")
val cacheSize: Int

The maximum amount of items to cache.

Link copied to clipboard
@SerialName(value = "CastReceiverApplications")
val castReceiverApplications: List<CastReceiverApplication>

The list of cast receiver applications.

Link copied to clipboard
@SerialName(value = "ChapterImageResolution")
val chapterImageResolution: ImageResolution

The chapter image resolution.

Link copied to clipboard
@SerialName(value = "CodecsUsed")
val codecsUsed: List<String>
Link copied to clipboard
@SerialName(value = "ContentTypes")
val contentTypes: List<NameValuePair>
Link copied to clipboard
@SerialName(value = "CorsHosts")
val corsHosts: List<String>

The cors hosts.

Link copied to clipboard
@SerialName(value = "DisableLiveTvChannelUserDataName")
val disableLiveTvChannelUserDataName: Boolean
Link copied to clipboard
@SerialName(value = "DisplaySpecialsWithinSeasons")
val displaySpecialsWithinSeasons: Boolean
Link copied to clipboard
@SerialName(value = "DummyChapterDuration")
val dummyChapterDuration: Int

The dummy chapter duration in seconds, use 0 (zero) or less to disable generation altogether.

Link copied to clipboard
@SerialName(value = "EnableCaseSensitiveItemIds")
val enableCaseSensitiveItemIds: Boolean

A value indicating whether enable case-sensitive item ids.

Link copied to clipboard
@SerialName(value = "EnableExternalContentInSuggestions")
val enableExternalContentInSuggestions: Boolean
Link copied to clipboard
@SerialName(value = "EnableFolderView")
val enableFolderView: Boolean
Link copied to clipboard
@SerialName(value = "EnableGroupingMoviesIntoCollections")
val enableGroupingMoviesIntoCollections: Boolean
Link copied to clipboard
@SerialName(value = "EnableGroupingShowsIntoCollections")
val enableGroupingShowsIntoCollections: Boolean
Link copied to clipboard
@SerialName(value = "EnableLegacyAuthorization")
val enableLegacyAuthorization: Boolean

A value indicating whether old authorization methods are allowed.

Link copied to clipboard
@SerialName(value = "EnableMetrics")
val enableMetrics: Boolean

A value indicating whether to enable prometheus metrics exporting.

Link copied to clipboard
@SerialName(value = "EnableNormalizedItemByNameIds")
val enableNormalizedItemByNameIds: Boolean
Link copied to clipboard
@SerialName(value = "EnableSlowResponseWarning")
val enableSlowResponseWarning: Boolean

A value indicating whether slow server responses should be logged as a warning.

Link copied to clipboard
@SerialName(value = "ImageExtractionTimeoutMs")
val imageExtractionTimeoutMs: Int
Link copied to clipboard
@SerialName(value = "ImageSavingConvention")
val imageSavingConvention: ImageSavingConvention

The image saving convention.

Link copied to clipboard
@SerialName(value = "InactiveSessionThreshold")
val inactiveSessionThreshold: Int

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.

Link copied to clipboard
@SerialName(value = "IsPortAuthorized")
val isPortAuthorized: Boolean

A value indicating whether this instance is port authorized.

Link copied to clipboard
@SerialName(value = "IsStartupWizardCompleted")
val isStartupWizardCompleted: Boolean

A value indicating whether this instance is first run.

Link copied to clipboard
@SerialName(value = "LibraryMetadataRefreshConcurrency")
val libraryMetadataRefreshConcurrency: Int

The how many metadata refreshes can run concurrently.

Link copied to clipboard
@SerialName(value = "LibraryMonitorDelay")
val libraryMonitorDelay: Int

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.

Link copied to clipboard
@SerialName(value = "LibraryScanFanoutConcurrency")
val libraryScanFanoutConcurrency: Int

The how the library scan fans out.

Link copied to clipboard
@SerialName(value = "LibraryUpdateDuration")
val libraryUpdateDuration: Int

The duration in seconds that we will wait after a library updated event before executing the library changed notification.

Link copied to clipboard
@SerialName(value = "LogFileRetentionDays")
val logFileRetentionDays: Int

The number of days we should retain log files.

Link copied to clipboard
@SerialName(value = "MaxAudiobookResume")
val maxAudiobookResume: Int

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.

Link copied to clipboard
@SerialName(value = "MaxResumePct")
val maxResumePct: Int

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.

Link copied to clipboard
@SerialName(value = "MetadataCountryCode")
val metadataCountryCode: String

The metadata country code.

Link copied to clipboard
@SerialName(value = "MetadataOptions")
val metadataOptions: List<MetadataOptions>
Link copied to clipboard
@SerialName(value = "MetadataPath")
val metadataPath: String

The metadata path.

Link copied to clipboard
@SerialName(value = "MinAudiobookResume")
val minAudiobookResume: Int

The minimum minutes of a book that must be played in order for playstate to be updated.

Link copied to clipboard
@SerialName(value = "MinResumeDurationSeconds")
val minResumeDurationSeconds: Int

The minimum duration that an item must have in order to be eligible for playstate updates..

Link copied to clipboard
@SerialName(value = "MinResumePct")
val minResumePct: Int

The minimum percentage of an item that must be played in order for playstate to be updated.

Link copied to clipboard
@SerialName(value = "ParallelImageEncodingLimit")
val parallelImageEncodingLimit: Int

The limit for parallel image encoding.

Link copied to clipboard
@SerialName(value = "PathSubstitutions")
val pathSubstitutions: List<PathSubstitution>
Link copied to clipboard
@SerialName(value = "PluginRepositories")
val pluginRepositories: List<RepositoryInfo>
Link copied to clipboard
@SerialName(value = "PreferredMetadataLanguage")
val preferredMetadataLanguage: String

The preferred metadata language.

Link copied to clipboard
@SerialName(value = "PreviousVersion")
val previousVersion: String?

The last known version that was ran using the configuration.

Link copied to clipboard
@SerialName(value = "PreviousVersionStr")
val previousVersionStr: String?

Gets or sets the stringified PreviousVersion to be stored/loaded, because System.Version itself isn't xml-serializable.

Link copied to clipboard
@SerialName(value = "QuickConnectAvailable")
val quickConnectAvailable: Boolean

A value indicating whether quick connect is available for use on this server.

Link copied to clipboard
@SerialName(value = "RemoteClientBitrateLimit")
val remoteClientBitrateLimit: Int
Link copied to clipboard
@SerialName(value = "SaveMetadataHidden")
val saveMetadataHidden: Boolean
Link copied to clipboard
@SerialName(value = "ServerName")
val serverName: String
Link copied to clipboard
@SerialName(value = "SkipDeserializationForBasicTypes")
val skipDeserializationForBasicTypes: Boolean
Link copied to clipboard
@SerialName(value = "SlowResponseThresholdMs")
val slowResponseThresholdMs: Long

The threshold for the slow response time warning in ms.

Link copied to clipboard
@SerialName(value = "SortRemoveCharacters")
val sortRemoveCharacters: List<String>

Characters to be removed from strings to create a sort name.

Link copied to clipboard
@SerialName(value = "SortRemoveWords")
val sortRemoveWords: List<String>

Words to be removed from strings to create a sort name.

Link copied to clipboard
@SerialName(value = "SortReplaceCharacters")
val sortReplaceCharacters: List<String>

Characters to be replaced with a ' ' in strings to create a sort name.

Link copied to clipboard
@SerialName(value = "TrickplayOptions")
val trickplayOptions: TrickplayOptions

The trickplay options.

Link copied to clipboard
@SerialName(value = "UICulture")
val uiCulture: String