264 lines
7.6 KiB
JSON
264 lines
7.6 KiB
JSON
{
|
|
"title": "Overcrawlrr configuration",
|
|
"type": "object",
|
|
"properties": {
|
|
"config": {
|
|
"type": "object",
|
|
"required": ["overseerr", "discovery", "rulesets"],
|
|
"properties": {
|
|
"overseerr": { "$ref": "#/definitions/overseer" },
|
|
"plex": { "$ref": "#/definitions/plex" },
|
|
"discovery": { "$ref": "#/definitions/discovery"},
|
|
"smartRecommendations": { "$ref": "#/definitions/smartRecommendations"},
|
|
"rulesets": { "$ref": "#/definitions/rulesets"}
|
|
}
|
|
}
|
|
},
|
|
"definitions": {
|
|
|
|
"overseer": {
|
|
"$id": "#/definitions/overseer",
|
|
"type": "object",
|
|
"required": ["apiUrl", "user", "password"],
|
|
"properties": {
|
|
"apiUrl": { "type": "string" },
|
|
"user": { "type": "string" },
|
|
"password": { "type": "string" },
|
|
"dryRun": { "type": "boolean" }
|
|
}
|
|
},
|
|
|
|
"plex": {
|
|
"$id": "#/definitions/plex",
|
|
"type": "object",
|
|
"required": ["apiUrl", "plexToken"],
|
|
"properties": {
|
|
"apiUrl": { "type": "string" },
|
|
"plexToken": { "type": "string" }
|
|
}
|
|
},
|
|
|
|
"discovery": {
|
|
"$id": "#/definitions/discovery",
|
|
"type": "object",
|
|
"required": ["cron", "streams", "ruleset"],
|
|
"properties": {
|
|
"cron": { "type": "string" },
|
|
"ruleset": { "type": "string" },
|
|
"streams": { "type": "array", "items": { "type": "string" }}
|
|
}
|
|
},
|
|
|
|
"smartRecommendations": {
|
|
"$id": "#/definitions/smartRecommendations",
|
|
"type": "object",
|
|
"required": ["cron", "plexLibrary", "ruleset", "minimumRating"],
|
|
"properties": {
|
|
"cron": { "type": "string" },
|
|
"plexLibrary": { "type": "string" },
|
|
"ruleset": { "type": "string" },
|
|
"minimumRating": { "type": "number"}
|
|
}
|
|
},
|
|
|
|
"rulesets": {
|
|
"$id": "#/definitions/rulesets",
|
|
"type": "array",
|
|
"items": { "$ref": "#/definitions/ruleset" }
|
|
},
|
|
|
|
"ruleset": {
|
|
"$id": "#/definitions/ruleset",
|
|
"type": "object",
|
|
"required": ["name", "rules"],
|
|
"properties": {
|
|
"name": { "type": "string" },
|
|
"extends": { "type": "string" },
|
|
"rules": { "type": "array", "items": { "$ref": "#/definitions/rule" }}
|
|
}
|
|
},
|
|
|
|
"rule": {
|
|
"$id": "#/definitions/rule",
|
|
"type": "object",
|
|
"required": ["name", "whenMatch", "action"],
|
|
"properties": {
|
|
"name": { "type": "string" },
|
|
"whenMatch": { "type": "array", "items": { "$ref": "#/definitions/predicate" }},
|
|
"action": { "type": "string", "enum": ["accept", "reject", "skip"]},
|
|
"with": { "$ref": "#/definitions/ruleParameters" }
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
|
|
"ruleParameters": {
|
|
"$id": "#/definitions/ruleParameters",
|
|
"type": "object",
|
|
"properties": {
|
|
"radarr": { "$ref": "#/definitions/ruleServiceParameters"}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
|
|
"ruleServiceParameters": {
|
|
"$id": "#/definitions/ruleServiceParameters",
|
|
"type": "object",
|
|
"properties": {
|
|
"server": { "type": "string"},
|
|
"profile": { "type": "string"}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
|
|
"predicate": {
|
|
"$id": "#/definitions/predicate",
|
|
"type": "object",
|
|
"properties": {
|
|
"or": { "$ref": "#/definitions/orPredicate" },
|
|
"and": { "$ref": "#/definitions/andPredicate" },
|
|
"not": { "$ref": "#/definitions/notPredicate" },
|
|
"adult": { "$ref": "#/definitions/adultPredicate" },
|
|
"age": { "$ref": "#/definitions/agePredicate" },
|
|
"score": { "$ref": "#/definitions/scorePredicate" },
|
|
"genre": { "$ref": "#/definitions/genrePredicate" },
|
|
"keyword": { "$ref": "#/definitions/keywordPredicate" },
|
|
"watchProviders": { "$ref": "#/definitions/watchProvidersPredicate" },
|
|
"voteCount": { "$ref": "#/definitions/voteCountPredicate" },
|
|
"cast": { "$ref": "#/definitions/castPredicate" },
|
|
"crew": { "$ref": "#/definitions/crewPredicate" },
|
|
"released": { "$ref": "#/definitions/releasedPredicate" },
|
|
"runtime": { "$ref": "#/definitions/runtimePredicate" },
|
|
"productionCompany": { "$ref": "#/definitions/productionCompanyPredicate" },
|
|
"originalLanguage": { "$ref": "#/definitions/originalLanguagePredicate" },
|
|
"status": { "$ref": "#/definitions/statusPredicate" }
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
|
|
"orPredicate": {
|
|
"$id": "#/definitions/orPredicate",
|
|
"type": "array",
|
|
"items": { "$ref": "#/definitions/predicate" }
|
|
},
|
|
|
|
"andPredicate": {
|
|
"$id": "#/definitions/andPredicate",
|
|
"type": "array",
|
|
"items": { "$ref": "#/definitions/predicate" }
|
|
},
|
|
|
|
"notPredicate": {
|
|
"$id": "#/definitions/notPredicate",
|
|
"type": "array",
|
|
"items": { "$ref": "#/definitions/predicate" }
|
|
},
|
|
|
|
"adultPredicate": {
|
|
"$id": "#/definitions/adultPredicate",
|
|
"type": "string",
|
|
"enum": ["yes", "no"]
|
|
},
|
|
|
|
"agePredicate": {
|
|
"$id": "#/definitions/agePredicate",
|
|
"type": "string"
|
|
},
|
|
|
|
"releasedPredicate": {
|
|
"$id": "#/definitions/releasedPredicate",
|
|
"type": "string",
|
|
"enum": ["yes", "no"]
|
|
},
|
|
|
|
"scorePredicate": {
|
|
"$id": "#/definitions/scorePredicate",
|
|
"type": "string"
|
|
},
|
|
|
|
"voteCountPredicate": {
|
|
"$id": "#/definitions/voteCountPredicate",
|
|
"type": "string"
|
|
},
|
|
|
|
"genrePredicate": {
|
|
"$id": "#/definitions/genrePredicate",
|
|
"oneOf": [
|
|
{ "type": "string" },
|
|
{ "type": "array", "items": { "type": "string" }}
|
|
]
|
|
},
|
|
|
|
"keywordPredicate": {
|
|
"$id": "#/definitions/keywordPredicate",
|
|
"oneOf": [
|
|
{ "type": "string" },
|
|
{ "type": "array", "items": { "type": "string" }}
|
|
]
|
|
},
|
|
|
|
"watchProvidersPredicate": {
|
|
"$id": "#/definitions/watchProvidersPredicate",
|
|
"type": "object",
|
|
"properties": {
|
|
"region": { "type": "string"},
|
|
"names": { "type": "array", "items": { "type": "string" }}
|
|
}
|
|
},
|
|
|
|
"castPredicate": {
|
|
"$id": "#/definitions/castPredicate",
|
|
"oneOf": [
|
|
{ "type": "array", "items": { "type": "string" }},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"voice": { "type": "string", "enum": ["include", "exclude"]},
|
|
"names": { "type": "array", "items": {"type": "string" }}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
|
|
"crewPredicate": {
|
|
"$id": "#/definitions/crewPredicate",
|
|
"oneOf": [
|
|
{ "type": "array", "items": { "type": "string" }},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"job": { "type": "string"},
|
|
"names": { "type": "array", "items": {"type": "string" }}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
|
|
"productionCompanyPredicate": {
|
|
"$id": "#/definitions/productionCompanyPredicate",
|
|
"type": "array",
|
|
"items": {"type": "string" }
|
|
},
|
|
|
|
"runtimePredicate": {
|
|
"$id": "#/definitions/runtimePredicate",
|
|
"type": "string"
|
|
},
|
|
|
|
"originalLanguagePredicate": {
|
|
"$id": "#/definitions/originalLanguagePredicate",
|
|
"oneOf": [
|
|
{ "type": "string" },
|
|
{ "type": "array", "items": { "type": "string" }}
|
|
]
|
|
},
|
|
|
|
"statusPredicate": {
|
|
"$id": "#/definitions/statusPredicate",
|
|
"oneOf": [
|
|
{ "type": "string" },
|
|
{ "type": "array", "items": { "type": "string" }}
|
|
]
|
|
}
|
|
}
|
|
}
|