{ "additionalProperties": false, "type": "object", "required": [ "targets" ], "properties": { "probes": { "additionalProperties": false, "type": "object", "properties": { "execution": { "additionalProperties": false, "type": "object", "properties": { "maxConcurrentChecks": { "anyOf": [ { "minimum": 1, "type": "integer" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } } } } }, "server": { "additionalProperties": false, "type": "object", "properties": { "listen": { "additionalProperties": false, "type": "object", "properties": { "host": { "type": "string" }, "port": { "anyOf": [ { "maximum": 65535, "minimum": 0, "type": "integer" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } } }, "logging": { "additionalProperties": false, "type": "object", "properties": { "console": { "additionalProperties": false, "type": "object", "properties": { "level": { "anyOf": [ { "anyOf": [ { "const": "trace", "type": "string" }, { "const": "debug", "type": "string" }, { "const": "info", "type": "string" }, { "const": "warn", "type": "string" }, { "const": "error", "type": "string" }, { "const": "fatal", "type": "string" } ] }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } } }, "file": { "additionalProperties": false, "type": "object", "properties": { "level": { "anyOf": [ { "anyOf": [ { "const": "trace", "type": "string" }, { "const": "debug", "type": "string" }, { "const": "info", "type": "string" }, { "const": "warn", "type": "string" }, { "const": "error", "type": "string" }, { "const": "fatal", "type": "string" } ] }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "path": { "minLength": 1, "type": "string" }, "rotation": { "additionalProperties": false, "type": "object", "properties": { "frequency": { "anyOf": [ { "anyOf": [ { "const": "hourly", "type": "string" }, { "const": "daily", "type": "string" }, { "const": "weekly", "type": "string" } ] }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "maxFiles": { "anyOf": [ { "minimum": 1, "type": "integer" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "size": { "anyOf": [ { "type": "string" }, { "minimum": 0, "type": "integer" } ] } } } } }, "level": { "anyOf": [ { "anyOf": [ { "const": "trace", "type": "string" }, { "const": "debug", "type": "string" }, { "const": "info", "type": "string" }, { "const": "warn", "type": "string" }, { "const": "error", "type": "string" }, { "const": "fatal", "type": "string" } ] }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } } }, "storage": { "additionalProperties": false, "type": "object", "properties": { "dataDir": { "type": "string" }, "retention": { "type": "string" } } } } }, "targets": { "minItems": 1, "type": "array", "items": { "anyOf": [ { "additionalProperties": false, "type": "object", "required": [ "id", "type", "http" ], "properties": { "description": { "anyOf": [ { "type": "null" }, { "anyOf": [ { "maxLength": 500, "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } ] }, "expect": { "additionalProperties": false, "type": "object", "properties": { "body": { "type": "array", "items": { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" }, "css": { "additionalProperties": false, "type": "object", "required": [ "selector" ], "properties": { "attr": { "type": "string" }, "selector": { "minLength": 1, "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } }, "json": { "additionalProperties": false, "type": "object", "required": [ "path" ], "properties": { "path": { "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } }, "xpath": { "additionalProperties": false, "type": "object", "required": [ "path" ], "properties": { "path": { "minLength": 1, "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } } } }, "durationMs": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "headers": { "additionalProperties": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "type": "object" }, "status": { "type": "array", "items": { "anyOf": [ { "maximum": 599, "minimum": 100, "type": "integer" }, { "pattern": "^[1-5]xx$", "type": "string" } ] } } } }, "group": { "type": "string" }, "id": { "maxLength": 30, "minLength": 1, "type": "string" }, "interval": { "type": "string" }, "name": { "anyOf": [ { "type": "null" }, { "anyOf": [ { "maxLength": 30, "minLength": 1, "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } ] }, "timeout": { "type": "string" }, "type": { "const": "http", "type": "string" }, "http": { "additionalProperties": false, "type": "object", "required": [ "url" ], "properties": { "body": { "type": "string" }, "headers": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "type": "object" }, "ignoreSSL": { "anyOf": [ { "type": "boolean" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "maxBodyBytes": { "anyOf": [ { "type": "string" }, { "minimum": 0, "type": "integer" } ] }, "maxRedirects": { "anyOf": [ { "minimum": 0, "type": "integer" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "method": { "anyOf": [ { "anyOf": [ { "const": "DELETE", "type": "string" }, { "const": "GET", "type": "string" }, { "const": "HEAD", "type": "string" }, { "const": "OPTIONS", "type": "string" }, { "const": "PATCH", "type": "string" }, { "const": "POST", "type": "string" }, { "const": "PUT", "type": "string" } ] }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "url": { "minLength": 1, "type": "string" } } } } }, { "additionalProperties": false, "type": "object", "required": [ "id", "type", "cmd" ], "properties": { "description": { "anyOf": [ { "type": "null" }, { "anyOf": [ { "maxLength": 500, "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } ] }, "expect": { "additionalProperties": false, "type": "object", "properties": { "durationMs": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "exitCode": { "type": "array", "items": { "type": "integer" } }, "stderr": { "type": "array", "items": { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" }, "css": { "additionalProperties": false, "type": "object", "required": [ "selector" ], "properties": { "attr": { "type": "string" }, "selector": { "minLength": 1, "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } }, "json": { "additionalProperties": false, "type": "object", "required": [ "path" ], "properties": { "path": { "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } }, "xpath": { "additionalProperties": false, "type": "object", "required": [ "path" ], "properties": { "path": { "minLength": 1, "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } } } }, "stdout": { "type": "array", "items": { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" }, "css": { "additionalProperties": false, "type": "object", "required": [ "selector" ], "properties": { "attr": { "type": "string" }, "selector": { "minLength": 1, "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } }, "json": { "additionalProperties": false, "type": "object", "required": [ "path" ], "properties": { "path": { "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } }, "xpath": { "additionalProperties": false, "type": "object", "required": [ "path" ], "properties": { "path": { "minLength": 1, "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } } } } } }, "group": { "type": "string" }, "id": { "maxLength": 30, "minLength": 1, "type": "string" }, "interval": { "type": "string" }, "name": { "anyOf": [ { "type": "null" }, { "anyOf": [ { "maxLength": 30, "minLength": 1, "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } ] }, "timeout": { "type": "string" }, "type": { "const": "cmd", "type": "string" }, "cmd": { "additionalProperties": false, "type": "object", "required": [ "exec" ], "properties": { "args": { "type": "array", "items": { "type": "string" } }, "cwd": { "type": "string" }, "env": { "additionalProperties": { "type": "string" }, "type": "object" }, "exec": { "minLength": 1, "type": "string" }, "maxOutputBytes": { "anyOf": [ { "type": "string" }, { "minimum": 0, "type": "integer" } ] } } } } }, { "additionalProperties": false, "type": "object", "required": [ "id", "type", "db" ], "properties": { "description": { "anyOf": [ { "type": "null" }, { "anyOf": [ { "maxLength": 500, "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } ] }, "expect": { "additionalProperties": false, "type": "object", "properties": { "durationMs": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "result": { "type": "array", "items": { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" }, "css": { "additionalProperties": false, "type": "object", "required": [ "selector" ], "properties": { "attr": { "type": "string" }, "selector": { "minLength": 1, "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } }, "json": { "additionalProperties": false, "type": "object", "required": [ "path" ], "properties": { "path": { "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } }, "xpath": { "additionalProperties": false, "type": "object", "required": [ "path" ], "properties": { "path": { "minLength": 1, "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } } } }, "rowCount": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "rows": { "type": "array", "items": { "additionalProperties": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "type": "object" } } } }, "group": { "type": "string" }, "id": { "maxLength": 30, "minLength": 1, "type": "string" }, "interval": { "type": "string" }, "name": { "anyOf": [ { "type": "null" }, { "anyOf": [ { "maxLength": 30, "minLength": 1, "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } ] }, "timeout": { "type": "string" }, "type": { "const": "db", "type": "string" }, "db": { "additionalProperties": false, "type": "object", "required": [ "url" ], "properties": { "query": { "minLength": 1, "type": "string" }, "url": { "minLength": 1, "type": "string" } } } } }, { "additionalProperties": false, "type": "object", "required": [ "id", "type", "tcp" ], "properties": { "description": { "anyOf": [ { "type": "null" }, { "anyOf": [ { "maxLength": 500, "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } ] }, "expect": { "additionalProperties": false, "type": "object", "properties": { "banner": { "type": "array", "items": { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" }, "css": { "additionalProperties": false, "type": "object", "required": [ "selector" ], "properties": { "attr": { "type": "string" }, "selector": { "minLength": 1, "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } }, "json": { "additionalProperties": false, "type": "object", "required": [ "path" ], "properties": { "path": { "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } }, "xpath": { "additionalProperties": false, "type": "object", "required": [ "path" ], "properties": { "path": { "minLength": 1, "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } } } }, "connected": { "anyOf": [ { "type": "boolean" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "durationMs": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] } } }, "group": { "type": "string" }, "id": { "maxLength": 30, "minLength": 1, "type": "string" }, "interval": { "type": "string" }, "name": { "anyOf": [ { "type": "null" }, { "anyOf": [ { "maxLength": 30, "minLength": 1, "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } ] }, "timeout": { "type": "string" }, "type": { "const": "tcp", "type": "string" }, "tcp": { "additionalProperties": false, "type": "object", "required": [ "host", "port" ], "properties": { "bannerReadTimeout": { "minimum": 0, "type": "number" }, "host": { "minLength": 1, "type": "string" }, "maxBannerBytes": { "anyOf": [ { "type": "string" }, { "minimum": 0, "type": "integer" } ] }, "port": { "anyOf": [ { "maximum": 65535, "minimum": 1, "type": "integer" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "readBanner": { "anyOf": [ { "type": "boolean" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } } } } }, { "additionalProperties": false, "type": "object", "required": [ "id", "type", "icmp" ], "properties": { "description": { "anyOf": [ { "type": "null" }, { "anyOf": [ { "maxLength": 500, "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } ] }, "expect": { "additionalProperties": false, "type": "object", "properties": { "alive": { "anyOf": [ { "type": "boolean" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "avgLatencyMs": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "durationMs": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "maxLatencyMs": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "packetLossPercent": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] } } }, "group": { "type": "string" }, "id": { "maxLength": 30, "minLength": 1, "type": "string" }, "interval": { "type": "string" }, "name": { "anyOf": [ { "type": "null" }, { "anyOf": [ { "maxLength": 30, "minLength": 1, "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } ] }, "timeout": { "type": "string" }, "type": { "const": "icmp", "type": "string" }, "icmp": { "additionalProperties": false, "type": "object", "required": [ "host" ], "properties": { "count": { "anyOf": [ { "maximum": 100, "minimum": 1, "type": "integer" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "host": { "minLength": 1, "type": "string" }, "packetSize": { "anyOf": [ { "maximum": 65500, "minimum": 1, "type": "integer" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } } } } }, { "additionalProperties": false, "type": "object", "required": [ "id", "type", "udp" ], "properties": { "description": { "anyOf": [ { "type": "null" }, { "anyOf": [ { "maxLength": 500, "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } ] }, "expect": { "additionalProperties": false, "type": "object", "properties": { "durationMs": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "responded": { "anyOf": [ { "type": "boolean" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "response": { "type": "array", "items": { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" }, "css": { "additionalProperties": false, "type": "object", "required": [ "selector" ], "properties": { "attr": { "type": "string" }, "selector": { "minLength": 1, "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } }, "json": { "additionalProperties": false, "type": "object", "required": [ "path" ], "properties": { "path": { "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } }, "xpath": { "additionalProperties": false, "type": "object", "required": [ "path" ], "properties": { "path": { "minLength": 1, "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } } } }, "responseSize": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "sourceHost": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "sourcePort": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] } } }, "group": { "type": "string" }, "id": { "maxLength": 30, "minLength": 1, "type": "string" }, "interval": { "type": "string" }, "name": { "anyOf": [ { "type": "null" }, { "anyOf": [ { "maxLength": 30, "minLength": 1, "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } ] }, "timeout": { "type": "string" }, "type": { "const": "udp", "type": "string" }, "udp": { "additionalProperties": false, "type": "object", "required": [ "host", "port" ], "properties": { "encoding": { "anyOf": [ { "anyOf": [ { "const": "text", "type": "string" }, { "const": "hex", "type": "string" }, { "const": "base64", "type": "string" } ] }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "host": { "minLength": 1, "type": "string" }, "maxResponseBytes": { "anyOf": [ { "type": "string" }, { "minimum": 0, "type": "integer" } ] }, "payload": { "type": "string" }, "port": { "anyOf": [ { "maximum": 65535, "minimum": 1, "type": "integer" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "responseEncoding": { "anyOf": [ { "anyOf": [ { "const": "text", "type": "string" }, { "const": "hex", "type": "string" }, { "const": "base64", "type": "string" } ] }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } } } } }, { "additionalProperties": false, "type": "object", "required": [ "id", "type", "llm" ], "properties": { "description": { "anyOf": [ { "type": "null" }, { "anyOf": [ { "maxLength": 500, "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } ] }, "expect": { "additionalProperties": false, "type": "object", "properties": { "durationMs": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "finishReason": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "headers": { "additionalProperties": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "type": "object" }, "output": { "type": "array", "items": { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" }, "css": { "additionalProperties": false, "type": "object", "required": [ "selector" ], "properties": { "attr": { "type": "string" }, "selector": { "minLength": 1, "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } }, "json": { "additionalProperties": false, "type": "object", "required": [ "path" ], "properties": { "path": { "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } }, "xpath": { "additionalProperties": false, "type": "object", "required": [ "path" ], "properties": { "path": { "minLength": 1, "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } } } }, "rawFinishReason": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "status": { "type": "array", "items": { "anyOf": [ { "maximum": 599, "minimum": 100, "type": "integer" }, { "pattern": "^[1-5]xx$", "type": "string" } ] } }, "stream": { "additionalProperties": false, "type": "object", "properties": { "completed": { "anyOf": [ { "type": "boolean" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "firstTokenMs": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] } } }, "usage": { "additionalProperties": false, "type": "object", "properties": { "inputTokens": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "outputTokens": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "totalTokens": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] } } } } }, "group": { "type": "string" }, "id": { "maxLength": 30, "minLength": 1, "type": "string" }, "interval": { "type": "string" }, "name": { "anyOf": [ { "type": "null" }, { "anyOf": [ { "maxLength": 30, "minLength": 1, "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } ] }, "timeout": { "type": "string" }, "type": { "const": "llm", "type": "string" }, "llm": { "additionalProperties": false, "type": "object", "required": [ "model", "prompt", "provider", "url" ], "properties": { "authToken": { "type": "string" }, "headers": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "type": "object" }, "ignoreSSL": { "anyOf": [ { "type": "boolean" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "key": { "type": "string" }, "mode": { "anyOf": [ { "anyOf": [ { "const": "http", "type": "string" }, { "const": "stream", "type": "string" } ] }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "model": { "minLength": 1, "type": "string" }, "options": { "additionalProperties": false, "type": "object", "properties": { "frequencyPenalty": { "type": "number" }, "maxOutputTokens": { "anyOf": [ { "minimum": 1, "type": "integer" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "presencePenalty": { "type": "number" }, "seed": { "type": "number" }, "stopSequences": { "type": "array", "items": { "type": "string" } }, "temperature": { "type": "number" }, "topK": { "type": "number" }, "topP": { "type": "number" } } }, "prompt": { "minLength": 1, "type": "string" }, "provider": { "anyOf": [ { "anyOf": [ { "const": "openai", "type": "string" }, { "const": "openai-responses", "type": "string" }, { "const": "anthropic", "type": "string" } ] }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "providerOptions": { "type": "object", "patternProperties": { "^(.*)$": { "additionalProperties": true, "type": "object", "properties": {} } } }, "url": { "minLength": 1, "type": "string" } } } } }, { "additionalProperties": false, "type": "object", "required": [ "id", "type", "dns" ], "properties": { "description": { "anyOf": [ { "type": "null" }, { "anyOf": [ { "maxLength": 500, "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } ] }, "expect": { "additionalProperties": false, "type": "object", "properties": { "answerCount": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "authenticatedData": { "type": "boolean" }, "authoritative": { "type": "boolean" }, "durationMs": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "rcode": { "type": "array", "items": { "type": "string" } }, "recursionAvailable": { "type": "boolean" }, "responded": { "type": "boolean" }, "result": { "type": "array", "items": { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" }, "css": { "additionalProperties": false, "type": "object", "required": [ "selector" ], "properties": { "attr": { "type": "string" }, "selector": { "minLength": 1, "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } }, "json": { "additionalProperties": false, "type": "object", "required": [ "path" ], "properties": { "path": { "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } }, "xpath": { "additionalProperties": false, "type": "object", "required": [ "path" ], "properties": { "path": { "minLength": 1, "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } } } }, "truncated": { "type": "boolean" }, "ttlMax": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "ttlMin": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "valueCount": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "values": { "additionalProperties": false, "type": "object", "properties": { "exact": { "type": "array", "items": { "type": "string" } }, "exclude": { "type": "array", "items": { "type": "string" } }, "include": { "type": "array", "items": { "type": "string" } } } } } }, "group": { "type": "string" }, "id": { "maxLength": 30, "minLength": 1, "type": "string" }, "interval": { "type": "string" }, "name": { "anyOf": [ { "type": "null" }, { "anyOf": [ { "maxLength": 30, "minLength": 1, "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } ] }, "timeout": { "type": "string" }, "type": { "const": "dns", "type": "string" }, "dns": { "anyOf": [ { "additionalProperties": false, "type": "object", "required": [ "name", "resolver" ], "properties": { "family": { "anyOf": [ { "anyOf": [ { "const": "any", "type": "string" }, { "const": "ipv4", "type": "string" }, { "const": "ipv6", "type": "string" } ] }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "name": { "anyOf": [ { "minLength": 1, "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "resolver": { "const": "system", "type": "string" } } }, { "additionalProperties": false, "type": "object", "required": [ "name", "resolver", "server" ], "properties": { "maxResponseBytes": { "anyOf": [ { "type": "string" }, { "minimum": 0, "type": "integer" } ] }, "name": { "anyOf": [ { "minLength": 1, "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "port": { "anyOf": [ { "maximum": 65535, "minimum": 1, "type": "integer" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "protocol": { "anyOf": [ { "anyOf": [ { "const": "udp", "type": "string" }, { "const": "tcp", "type": "string" } ] }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "recordType": { "anyOf": [ { "anyOf": [ { "const": "A", "type": "string" }, { "const": "AAAA", "type": "string" }, { "const": "CAA", "type": "string" }, { "const": "CNAME", "type": "string" }, { "const": "MX", "type": "string" }, { "const": "NS", "type": "string" }, { "const": "PTR", "type": "string" }, { "const": "SOA", "type": "string" }, { "const": "SRV", "type": "string" }, { "const": "TXT", "type": "string" } ] }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "recursionDesired": { "anyOf": [ { "type": "boolean" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "resolver": { "const": "server", "type": "string" }, "server": { "anyOf": [ { "minLength": 1, "type": "string" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] }, "tcpFallback": { "anyOf": [ { "type": "boolean" }, { "pattern": "^\\$\\{[^}]+\\}$", "type": "string" } ] } } } ] } } } ] } }, "variables": { "type": "object", "patternProperties": { "^[a-zA-Z_][a-zA-Z0-9_]*$": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] } } } }, "$id": "https://dial.local/probe-config.schema.json", "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "ContentExpectations": { "type": "array", "items": { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" }, "css": { "additionalProperties": false, "type": "object", "required": [ "selector" ], "properties": { "attr": { "type": "string" }, "selector": { "minLength": 1, "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } }, "json": { "additionalProperties": false, "type": "object", "required": [ "path" ], "properties": { "path": { "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } }, "xpath": { "additionalProperties": false, "type": "object", "required": [ "path" ], "properties": { "path": { "minLength": 1, "type": "string" }, "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } } } }, "KeyedExpectations": { "additionalProperties": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "type": "object" }, "ValueExpectation": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } ] }, "ValueMatcher": { "additionalProperties": false, "minProperties": 1, "type": "object", "properties": { "contains": { "type": "string" }, "empty": { "type": "boolean" }, "equals": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "items": {}, "type": "array" }, { "additionalProperties": {}, "type": "object" } ] }, "exists": { "type": "boolean" }, "gt": { "type": "number" }, "gte": { "type": "number" }, "lt": { "type": "number" }, "lte": { "type": "number" }, "regex": { "type": "string" } } } } }