content: {
    "$defs": {
      "teststep": {
        "description": "Teststeps configuration",
        "oneOf": [
          {
            "required": [
              "type"
            ]
          },
          {
            "required": [
              "repeat_block"
            ]
          }
        ],
        "properties": {
          "desc": {
            "description": "Description of teststep",
            "type": "string"
          },
          "params": {
            "description": "Parameter given of teststep",
            "properties": {},
            "type": "object"
          },
          "repeat_block": {
            "description": "Repeat teststep x times",
            "properties": {
              "teststeps": {
                "items": {
                  "$ref": "#/$defs/teststep"
                },
                "type": "array"
              },
              "times": {
                "description": "Repeat teststep x times",
                "minimum": 2,
                "type": "integer"
              }
            },
            "type": "object"
          },
          "type": {
            "description": "Name of teststep",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "$id": "recursion.json",
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "description": "A json testsuite schema",
    "properties": {
      "configs": {
        "description": "Additional config parameters used by teststeps",
        "patternProperties": {
          "^[a-z_]+": {}
        },
        "type": "object",
        "uniqueItems": true
      },
      "shutdown_steps": {
        "description": "Shutdown steps done after every testcase",
        "items": {
          "$ref": "#/$defs/teststep"
        },
        "type": "array"
      },
      "startup_steps": {
        "description": "Startup steps done before every testcase",
        "items": {
          "$ref": "#/$defs/teststep"
        },
        "type": "array"
      },
      "testcases": {
        "description": "Testcases creating a Testsuite",
        "items": {
          "properties": {
            "comment": {
              "description": "Commentary to the testcase",
              "type": "string"
            },
            "desc": {
              "description": "Description of teststep",
              "type": "string"
            },
            "name": {
              "description": "Short name of teststep. Must start with testnumber e.g. \"01 - Testname\"",
              "pattern": "^[0-9]+ - .*",
              "type": "string"
            },
            "parameterized_tests": {
              "description": "Execute testcase with different parameters",
              "patternProperties": {
                "[a-z_]": {
                  "items": {},
                  "minItems": 1,
                  "type": "array"
                }
              },
              "type": "object",
              "uniqueItems": true
            },
            "req": {
              "description": "Reference to requirements",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "teststeps": {
              "description": "Steps done for testcase",
              "items": {
                "$ref": "#/$defs/teststep"
              },
              "minItems": 1,
              "type": "array"
            },
            "type": {
              "description": "Testtype",
              "enum": [
                "regression",
                "long_running",
                "skip",
                "known_failure"
              ]
            }
          },
          "required": [
            "name",
            "type",
            "teststeps"
          ],
          "type": "object"
        },
        "minItems": 1,
        "type": "array",
        "uniqueItems": true
      }
    },
    "required": [
      "testcases"
    ],
    "title": "Testsuite",
    "type": "object"
  }