You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
recyclarr/schemas/config-schema.json

242 lines
7.6 KiB

{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "https://raw.githubusercontent.com/recyclarr/recyclarr/master/schemas/config-schema.json",
"type": "object",
"additionalProperties": false,
"properties": {
"sonarr": {
"oneOf": [
{
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/sonarr_instance"
}
},
{
"type": "object",
"patternProperties": {
"^.*$": {
"$ref": "#/$defs/sonarr_instance"
}
}
}
]
},
"radarr": {
"oneOf": [
{
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/radarr_instance"
}
},
{
"type": "object",
"patternProperties": {
"^.*$": {
"$ref": "#/$defs/radarr_instance"
}
}
}
]
}
},
"$defs": {
"trash_id": {
"type": "string",
"minLength": 32,
"pattern": "^[0-9a-fA-F]+$"
},
"trash_ids_list": {
"type": "array",
"description": "A list of one or more Trash IDs taken from the Trash Guide Sonarr JSON files.",
"minItems": 1,
"uniqueItems": true,
"items": {
"$ref": "#/$defs/trash_id"
}
},
"base_url": {
"type": "string",
"description": "The base URL of your instance. Basically this is the URL you bookmark to get to the front page."
},
"delete_old_custom_formats": {
"type": "boolean",
"description": "If enabled, custom formats that you remove from your YAML configuration OR that are removed from the guide will be deleted from your Radarr instance.",
"default": false
},
"replace_existing_custom_formats": {
"type": "boolean",
"description": "If disabled, custom formats that Recyclarr didn't explicitly create or know about will not be replaced.",
"default": true
},
"custom_formats": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"description": "A list of one or more sets of custom formats each with an optional set of quality profiles names that identify which quality profiles to assign the scores for those custom formats to.",
"required": ["trash_ids"],
"properties": {
"trash_ids": {
"$ref": "#/$defs/trash_ids_list"
},
"quality_profiles": {
"type": "array",
"description": "One or more quality profiles to update with the scores from the specified custom formats.",
"minItems": 1,
"items": {
"properties": {
"name": {
"type": "string",
"description": "The name of one of the quality profiles in Radarr."
},
"score": {
"type": "integer",
"description": "A positive or negative number representing the score to apply to *all* custom formats listed in the trash_ids list."
},
"reset_unmatched_scores": {
"type": "boolean",
"description": "If set to true, enables setting scores to 0 in quality profiles where either a CF was not mentioned in the trash_ids array or it was in that list but did not get a score (e.g. no score in guide).",
"default": false
}
}
}
}
}
}
},
"quality_definition": {
"type": "object",
"additionalProperties": false,
"required": ["type"],
"properties": {
"type": {
"type": "string"
},
"preferred_ratio": {
"type": "number",
"default": 1.0,
"minimum": 0.0,
"maximum": 1.0
}
}
},
"radarr_instance": {
"type": "object",
"additionalProperties": false,
"required": ["base_url", "api_key"],
"properties": {
"base_url": {
"$ref": "#/$defs/base_url",
"examples": [
"http://localhost:7878",
"https://radarr.mydomain.com",
"https://mydomain.com/radarr"
]
},
"api_key": {
"type": "string",
"minLength": 1,
"description": "The API key from Radarr"
},
"quality_definition": {
"$ref": "#/$defs/quality_definition"
},
"delete_old_custom_formats": {
"$ref": "#/$defs/delete_old_custom_formats"
},
"replace_existing_custom_formats": {
"$ref": "#/$defs/replace_existing_custom_formats"
},
"custom_formats": {
"$ref": "#/$defs/custom_formats"
}
}
},
"sonarr_instance": {
"type": "object",
"additionalProperties": false,
"required": ["base_url", "api_key"],
"properties": {
"base_url": {
"$ref": "#/$defs/base_url",
"examples": [
"http://localhost:8989",
"https://sonarr.mydomain.com",
"https://mydomain.com/sonarr"
]
},
"api_key": {
"type": "string",
"minLength": 1,
"description": "The API key from Sonarr."
},
"quality_definition": {
"$ref": "#/$defs/quality_definition"
},
"delete_old_custom_formats": {
"$ref": "#/$defs/delete_old_custom_formats"
},
"replace_existing_custom_formats": {
"$ref": "#/$defs/replace_existing_custom_formats"
},
"custom_formats": {
"$ref": "#/$defs/custom_formats"
},
"release_profiles": {
"type": "array",
"minItems": 1,
"items": {
"additionalProperties": false,
"required": ["trash_ids"],
"properties": {
"trash_ids": {
"$ref": "#/$defs/trash_ids_list"
},
"strict_negative_scores": {
"type": "boolean",
"default": false,
"description": "Enables preferred term scores less than 0 to be instead treated as \"Must Not Contain\" (ignored) terms."
},
"tags": {
"type": "array",
"description": "A list of one or more strings representing tags that will be applied to this release profile.",
"items": {
"type": "string"
}
},
"filter": {
"type": "object",
"additionalProperties": false,
"description": "Defines various ways that release profile terms from the guide are synchronized with Sonarr.",
"oneOf": [
{
"required": ["include"]
},
{
"required": ["exclude"]
}
],
"properties": {
"include": {
"$ref": "#/$defs/trash_ids_list",
"description": "A list of trash_id values representing terms (Required, Ignored, or Preferred) that should be included in the created Release Profile in Sonarr."
},
"exclude": {
"$ref": "#/$defs/trash_ids_list",
"description": "A list of trash_id values representing terms (Required, Ignored, or Preferred) that should be excluded from the created Release Profile in Sonarr."
}
}
}
}
}
}
}
}
}
}