{
  "jsonSchema": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "title": "X509Check collector configuration.",
    "type": "object",
    "properties": {
      "update_every": {
        "title": "Update every",
        "description": "Data collection interval, measured in seconds.",
        "type": "integer",
        "minimum": 1,
        "default": 1
      },
      "source": {
        "title": "Certificate source",
        "description": "The source of the certificate. Allowed schemes: https, tcp, tcp4, tcp6, udp, udp4, udp6, file, smtp.",
        "type": "string"
      },
      "timeout": {
        "title": "Timeout",
        "description": "The timeout in seconds for the certificate retrieval.",
        "type": "number",
        "minimum": 0.5,
        "default": 1
      },
      "check_full_chain": {
        "title": "Full chain",
        "description": "Monitor expiration time for all certificates in the SSL/TLS chain, including intermediate and root certificates.",
        "type": "boolean"
      },
      "check_revocation_status": {
        "title": "Revocation status",
        "description": "Whether to check the revocation status of the certificate.",
        "type": "boolean"
      },
      "vnode": {
        "title": "Vnode",
        "description": "Associates this data collection job with a [Virtual Node](https://learn.netdata.cloud/docs/netdata-agent/configuration/organize-systems-metrics-and-alerts#virtual-nodes).",
        "type": "string"
      },
      "tls_skip_verify": {
        "title": "Skip TLS verification",
        "description": "If set, TLS certificate verification will be skipped.",
        "type": "boolean"
      },
      "tls_ca": {
        "title": "TLS CA",
        "description": "The path to the CA certificate file for TLS verification.",
        "type": "string",
        "pattern": "^$|^/"
      },
      "tls_cert": {
        "title": "TLS certificate",
        "description": "The path to the client certificate file for TLS authentication.",
        "type": "string",
        "pattern": "^$|^/"
      },
      "tls_key": {
        "title": "TLS key",
        "description": "The path to the client key file for TLS authentication.",
        "type": "string",
        "pattern": "^$|^/"
      }
    },
    "required": [
      "source"
    ],
    "patternProperties": {
      "^name$": {}
    }
  },
  "uiSchema": {
    "uiOptions": {
      "fullPage": true
    },
    "vnode": {
      "ui:placeholder": "To use this option, first create a Virtual Node and then reference its name here."
    },
    "source": {
      "ui:placeholder": "https://example.com:443",
      "ui:help": " Website: `https://domainName:443`. Local file: `file:///path/to/cert.pem`. SMTP: `smtp://smtp.example.com:587`."
    },
    "timeout": {
      "ui:help": "Accepts decimals for precise control (e.g., type 1.5 for 1.5 seconds)."
    },
    "ui:flavour": "tabs",
    "ui:options": {
      "tabs": [
        {
          "title": "Base",
          "fields": [
            "update_every",
            "source",
            "timeout",
            "check_full_chain",
            "check_revocation_status",
            "vnode"
          ]
        },
        {
          "title": "TLS",
          "fields": [
            "tls_skip_verify",
            "tls_ca",
            "tls_cert",
            "tls_key"
          ]
        }
      ]
    }
  }
}
