{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/prowlarr/json-schema/prowlarr-notification-resource-schema.json",
  "title": "NotificationResource",
  "x-generated": "2026-10-28",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/prowlarr-openapi.json#/components/schemas/NotificationResource",
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "format": "int32"
    },
    "name": {
      "type": [
        "string",
        "null"
      ]
    },
    "fields": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/Field"
      }
    },
    "implementationName": {
      "type": [
        "string",
        "null"
      ]
    },
    "implementation": {
      "type": [
        "string",
        "null"
      ]
    },
    "configContract": {
      "type": [
        "string",
        "null"
      ]
    },
    "infoLink": {
      "type": [
        "string",
        "null"
      ]
    },
    "message": {
      "$ref": "#/$defs/ProviderMessage"
    },
    "tags": {
      "uniqueItems": true,
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "integer",
        "format": "int32"
      }
    },
    "presets": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/NotificationResource"
      }
    },
    "link": {
      "type": [
        "string",
        "null"
      ]
    },
    "onGrab": {
      "type": "boolean"
    },
    "onHealthIssue": {
      "type": "boolean"
    },
    "onHealthRestored": {
      "type": "boolean"
    },
    "onApplicationUpdate": {
      "type": "boolean"
    },
    "supportsOnGrab": {
      "type": "boolean"
    },
    "includeManualGrabs": {
      "type": "boolean"
    },
    "supportsOnHealthIssue": {
      "type": "boolean"
    },
    "supportsOnHealthRestored": {
      "type": "boolean"
    },
    "includeHealthWarnings": {
      "type": "boolean"
    },
    "supportsOnApplicationUpdate": {
      "type": "boolean"
    },
    "testCommand": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "additionalProperties": false,
  "$defs": {
    "Field": {
      "type": "object",
      "properties": {
        "order": {
          "type": "integer",
          "format": "int32"
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "label": {
          "type": [
            "string",
            "null"
          ]
        },
        "unit": {
          "type": [
            "string",
            "null"
          ]
        },
        "helpText": {
          "type": [
            "string",
            "null"
          ]
        },
        "helpTextWarning": {
          "type": [
            "string",
            "null"
          ]
        },
        "helpLink": {
          "type": [
            "string",
            "null"
          ]
        },
        "value": {
          "nullable": true
        },
        "type": {
          "type": [
            "string",
            "null"
          ]
        },
        "advanced": {
          "type": "boolean"
        },
        "selectOptions": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/SelectOption"
          }
        },
        "selectOptionsProviderAction": {
          "type": [
            "string",
            "null"
          ]
        },
        "section": {
          "type": [
            "string",
            "null"
          ]
        },
        "hidden": {
          "type": [
            "string",
            "null"
          ]
        },
        "privacy": {
          "$ref": "#/$defs/PrivacyLevel"
        },
        "placeholder": {
          "type": [
            "string",
            "null"
          ]
        },
        "isFloat": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "NotificationResource": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int32"
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "fields": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/Field"
          }
        },
        "implementationName": {
          "type": [
            "string",
            "null"
          ]
        },
        "implementation": {
          "type": [
            "string",
            "null"
          ]
        },
        "configContract": {
          "type": [
            "string",
            "null"
          ]
        },
        "infoLink": {
          "type": [
            "string",
            "null"
          ]
        },
        "message": {
          "$ref": "#/$defs/ProviderMessage"
        },
        "tags": {
          "uniqueItems": true,
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "integer",
            "format": "int32"
          }
        },
        "presets": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/NotificationResource"
          }
        },
        "link": {
          "type": [
            "string",
            "null"
          ]
        },
        "onGrab": {
          "type": "boolean"
        },
        "onHealthIssue": {
          "type": "boolean"
        },
        "onHealthRestored": {
          "type": "boolean"
        },
        "onApplicationUpdate": {
          "type": "boolean"
        },
        "supportsOnGrab": {
          "type": "boolean"
        },
        "includeManualGrabs": {
          "type": "boolean"
        },
        "supportsOnHealthIssue": {
          "type": "boolean"
        },
        "supportsOnHealthRestored": {
          "type": "boolean"
        },
        "includeHealthWarnings": {
          "type": "boolean"
        },
        "supportsOnApplicationUpdate": {
          "type": "boolean"
        },
        "testCommand": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "PrivacyLevel": {
      "enum": [
        "normal",
        "password",
        "apiKey",
        "userName"
      ],
      "type": "string"
    },
    "ProviderMessage": {
      "type": "object",
      "properties": {
        "message": {
          "type": [
            "string",
            "null"
          ]
        },
        "type": {
          "$ref": "#/$defs/ProviderMessageType"
        }
      },
      "additionalProperties": false
    },
    "ProviderMessageType": {
      "enum": [
        "info",
        "warning",
        "error"
      ],
      "type": "string"
    },
    "SelectOption": {
      "type": "object",
      "properties": {
        "value": {
          "type": "integer",
          "format": "int32"
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "order": {
          "type": "integer",
          "format": "int32"
        },
        "hint": {
          "type": [
            "string",
            "null"
          ]
        },
        "parentValue": {
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        }
      },
      "additionalProperties": false
    }
  }
}