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

199 lines
7.2 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": {
"type": "array",
"minItems": 1,
"items": {
"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": {
"enum": ["hybrid", "anime", "series"]
},
"release_profiles": {
"type": "array",
"minItems": 1,
"items": {
"additionalProperties": false,
"anyOf": [
{"required": ["trash_ids"]},
{"required": ["names"]}
],
"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."
}
}
}
}
}
}
}
}
},
"radarr": {
"type": "array",
"minItems": 1,
"items": {
"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": {
"type": "object",
"additionalProperties": false,
"required": ["type"],
"properties": {
"type": {
"type": "string",
"enum": ["movie"]
},
"preferred_ratio": {
"type": "number",
"default": 1.0,
"minimum": 0.0,
"maximum": 1.0
}
}
},
"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
},
"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.",
"anyOf": [
{"required": ["trash_ids"]},
{"required": ["names"]}
],
"properties": {
"names": {
"type": "array",
"uniqueItems": true,
"description": "A list of one or more custom format names to synchronize to Radarr. The names must be taken from the JSON itself in the guide.",
"minItems": 1,
"items": {
"type": "string"
}
},
"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 names list."
},
"reset_unmatched_scores": {
"type": "boolean",
"description": "If set to true, enables setting scores to 0 in quality profiles where either a name was not mentioned in the names array or it was in that list but did not get a score (e.g. no score in guide).",
"default": false
}
}
}
}
}
}
}
}
}
}
},
"$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",
"pattern": "^https?",
"description": "The base URL of your instance. Basically this is the URL you bookmark to get to the front page."
}
}
}