Update config-schema.json

additional validations in the settings section
This commit is contained in:
bullmoose20 2024-01-17 18:04:12 -05:00 committed by GitHub
parent fa30a357c1
commit 23682f3e18
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -65,12 +65,12 @@
"type": "string"
},
"timeout": {
"description": "Connection timeout for this Plex server",
"description": "Connection timeout in seconds for this Plex server",
"type": "integer",
"minimum": 0
},
"db_cache": {
"description": "Sets DB Cache value for this Plex server",
"description": "Sets DB Cache value for this Plex server in MB",
"oneOf": [
{ "type": "integer" },
{ "type": "string", "pattern": "^$" }
@ -116,7 +116,7 @@
"minimum": 0
},
"db_cache": {
"description": "Sets DB Cache value for this Plex server",
"description": "Sets DB Cache value for this Plex server in MB",
"oneOf": [
{ "type": "integer" },
{ "type": "string", "pattern": "^$" }
@ -178,7 +178,7 @@
"cache_expiration": {
"type": "integer",
"minimum": 1,
"description": "An integer greater than 0"
"description": "An integer greater than 0 in days"
}
},
"required": [
@ -242,7 +242,7 @@
"cache_expiration": {
"type": "integer",
"minimum": 1,
"description": "An integer greater than 0"
"description": "An integer greater than 0 in days"
}
},
"required": [
@ -261,7 +261,7 @@
"cache_expiration": {
"type": "integer",
"minimum": 1,
"description": "An integer greater than 0"
"description": "An integer greater than 0 in days"
}
},
"required": [
@ -320,7 +320,7 @@
"cache_expiration": {
"type": "integer",
"minimum": 1,
"description": "An integer greater than 0"
"description": "An integer greater than 0 in days"
},
"username": {
"type": "string"
@ -594,58 +594,73 @@
"additionalProperties": false,
"properties": {
"cache": {
"type": "boolean"
"type": "boolean",
"description": "Used to control PMM's cache database. Allow Plex Meta Manager to create and maintain a local cache database for faster subsequent processing. The cache file is created in the same directory as the configuration file."
},
"cache_expiration": {
"type": "integer",
"minimum": 1,
"description": "An integer greater than 0"
"description": "Used to control how long data is cached for. Set the number of days before each cache mapping expires and has to be re-cached. An integer greater than 0 in days"
},
"run_order": {
"description": "Used to specify the run order of the library components. Specify the run order of the library components [Library Operations, Collection Files and Overlay Files]",
"type": "array", "uniqueItems": true, "items": {"enum": ["operations", "metadata", "collections", "overlays"]}
},
"asset_directory": {
"description": "Used to define where local assets are located. Specify the directories where assets (posters, backgrounds, etc) are located.",
"oneOf": [
{ "type": "string"},
{ "type": "array", "uniqueItems": true, "items": {"type": "string" }}
]
},
"asset_folders": {
"description": "Used to control the asset directory folder structure. While true, PMM will search the asset_directory for a dedicated folder per item vs while false will look for an image.",
"type": "boolean"
},
"asset_depth": {
"description": "Used to control the depth of search in the asset directory. At each asset level, PMM will look for either medianame.ext [such as Star Wars.png] or a dedicated folder containing poster.ext. i.e. <path_to_assets>/Star Wars/poster.png and <path_to_assets>/Star Wars.png are both asset depth 0, whilst <path_to_assets>/Movies/Star Wars/poster.png and <path_to_assets>/Movies/Star Wars.png are both asset level 1.",
"type": "integer",
"minimum": 0
},
"create_asset_folders": {
"description": "Used to automatically create asset folders when none exist. Whilst searching for assets, if an asset folder cannot be found within the asset_directory one will be created. Asset Searches can happen in a number of ways.",
"type": "boolean"
},
"prioritize_assets": {
"description": "Used to prioritize asset_directory images over all other images types. When determining which image to use on an item prioritize the asset_directory over all other images types.",
"type": "boolean"
},
"dimensional_asset_rename": {
"description": "Used to automatically rename asset files based on their dimensions. Whilst searching for assets, scan the folders within the asset_directory and if an asset poster (i.e. /ASSET_NAME/poster.ext) was not found, rename the first image found that has a height greater than or equal to its width to poster.ext. If an asset background (i.e. /ASSET_NAME/background.ext), rename the first image found that has a width greater than its height to background.ext.",
"type": "boolean"
},
"download_url_assets": {
"description": "Used to download url images into the asset directory. Whilst searching for assets, download images set within Collection/Metadata/Playlist files( i.e. images set by url_poster or url_background) into the asset folder if none are already present.",
"type": "boolean"
},
"show_missing_season_assets": {
"description": " Used to show any missing season assets. Whilst searching for assets, when scanning for assets for a TV Show, if Season posters are found (i.e. /ASSET_NAME/Season##.ext), notify the user of any seasons which do not have an asset image.",
"type": "boolean"
},
"show_missing_episode_assets": {
"description": "Used to show any missing episode assets. Whilst searching for assets, when scanning for assets for a TV Show, if an Episode Title Card is found (i.e. /ASSET_NAME/S##E##.ext), notify the user of any episodes which do not have an asset image.",
"type": "boolean"
},
"show_asset_not_needed": {
"description": "Used to show/hide the update not needed messages. Whilst searching for assets, show or hide the update not needed messages.",
"type": "boolean"
},
"sync_mode": {
"description": "Used to set the sync_mode for collections and playlists. Sets the sync_mode for collections and playlists. Setting the sync_mode directly in a collection or playlist definition will override the sync_mode for that definition.",
"enum": ["sync", "append"]
},
"minimum_items": {
"description": "Used to control minimum items requires to build a collection/playlist. Set the minimum number of items that must be found in order to build or update a collection/playlist.",
"type": "integer",
"minimum": 1
},
"default_collection_order": {
"description": "Used to set the collection_order for every collection run. Set the collection_order for every collection run by PMM unless the collection has a specific collection_order",
"type": ["string", "null"],
"enum": [
"added.asc", "added.desc", "audience_rating.asc",
@ -661,40 +676,52 @@
]
},
"delete_below_minimum": {
"description": "Used to delete collections below minimum_items. When a collection is run, delete the collection if it is below the minimum number specified by minimum_items.",
"type": "boolean"
},
"delete_not_scheduled": {
"description": "Used to delete collections not scheduled. If a collection is skipped due to it not being scheduled, delete the collection.",
"type": "boolean"
},
"run_again_delay": {
"description": "Used to control the number of minutes to delay running run_again collections. Set the number of minutes to delay running run_again collections after daily run is finished. For example, if a collection adds items to Sonarr/Radarr, the library can automatically re-run 'X' amount of time later so that any downloaded items are processed.",
"type": "integer",
"minimum": 0
},
"missing_only_released": {
"description": "Used to filter unreleased items from missing lists. Whilst running a collection or playlist, when PMM handles missing items to either report it to the user, report it to a file, or send it to Radarr/Sonarr all unreleased items will be filtered out.",
"type": "boolean"
},
"only_filter_missing": {
"description": "Used to have the filter only apply to missing items. Only items missing from a collection will be filtered. Only specific filters can filter missing. See Filters for more information.",
"type": "boolean"
},
"show_unmanaged": {
"description": "Used to show collections not managed by PMM. List all collections not managed by Plex Meta Manager at the end of each run.",
"type": "boolean"
},
"show_unconfigured": {
"description": "Used to show collections not in the current run. List all collections not configured in the current Plex Meta Manager run at the end of each run.",
"type": "boolean"
},
"show_filtered": {
"description": "Used to show filtered items. List all items which have been filtered out of a collection or playlist (i.e. if it doesn't meet the filter criteria)",
"type": "boolean"
},
"show_options": {
"description": "Used to show attribute options from plex. While show_options is true the available options for an attribute when using plex_search, smart_filter or filters will be shown. i.e. a smart_filter on the genre attribute will return all of the attributes within the specified library.",
"type": "boolean"
},
"show_missing": {
"description": "Used to show missing items from collections or playlists. While show_missing is true items missing from collections or playlists will be displayed.",
"type": "boolean"
},
"show_missing_assets": {
"description": "Used to print a message when assets are missing. Display missing asset warnings for items, collections, and playlists.",
"type": "boolean"
},
"save_report": {
"description": "Used to save a report YAML file. Save a report of the items added, removed, filtered, or missing from collections to a YAML file in the same directory as the file run.",
"type": "boolean"
},
"tvdb_language": {
@ -720,34 +747,100 @@
"uig", "ukr", "urd", "uzb", "ven", "vie", "vol", "wln", "wol", "xho",
"yid", "yor", "zha", "zho", "zul"
],
"description": "This field can be either null or a valid ISO 639-2 language code."
"description": "Specify the language to query TVDb in. This field can be either null or a valid ISO 639-2 language code."
},
"ignore_ids": {
"type": "null"
"description": "List of TMDb/TVDb IDs to ignore. Set a null, a single TMDb/TVDb ID, or a comma-separated string of TMDb/TVDb IDs to ignore in all collections.",
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"pattern": "^(\\d+)(,(\\d+))*$"
}
]
},
"ignore_imdb_ids": {
"type": "null"
"description": "List of IMDb IDs to ignore. Set a null, a single IMDb ID, or a comma-separated string of IMDb IDs to ignore in all collections.",
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"pattern": "^(tt\\d{7})(,(tt\\d{7}))*$"
}
]
},
"item_refresh_delay": {
"description": "Time to wait between each item_refresh. Specify the amount of time to wait between each item_refresh of every movie/show in a collection/playlist.",
"type": "integer",
"minimum": 0
},
"playlist_sync_to_users": {
"type": [ "string", "null" ]
"description": "Set the default playlist sync_to_users. To Sync a playlist to only yourself, leave playlist_sync_to_users blank/null. Therefore, leaving it blank, 'all', a list of users, or a comma-separated string of users is accepted",
"anyOf": [
{
"type": "string",
"enum": ["all"]
},
{
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
{
"type": "string",
"pattern": "^([^,]+)(,[^,]+)*$"
},
{
"type": "null"
}
]
},
"playlist_exclude_users": {
"type": "null"
"description": "Set the default playlist exclude_users. Provide a null value, a list of users, or a comma-separated string of users to be excluded in the playlist.",
"oneOf": [
{
"type": "null"
},
{
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
{
"type": "string",
"pattern": "^([^,]+)(,[^,]+)*$"
}
]
},
"playlist_report": {
"description": "Used to print out a playlist report. Set playlist_report to true to print out a playlist report at the end of the log.",
"type": "boolean"
},
"verify_ssl": {
"description": "Turn SSL Verification on or off.",
"type": "boolean"
},
"custom_repo": {
"type": "null"
"description": "Used to set up the custom repo file block type. Specify where the repo attribute's base is when defining collection_files, metadata_files, playlist_file, and overlay_files.",
"oneOf": [
{
"type": "null"
},
{
"type": "string"
}
]
},
"check_nightly": {
"description": "Will check nightly for updates instead of develop.",
"type": "boolean"
}
},