{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/vtesttree-yaml/versions/2.3.0.json",
  "title": "vtesttree.yaml",
  "x-lintel": {
    "source": "https://www.schemastore.org/vtesttree-schema-v2.3.0.json",
    "sourceSha256": "12ff41bd4e6f9e84df7c8c8cf7d0ba7b1d98317e36eb63e36958bf34352f3b7a",
    "fileMatch": [
      "*.vtesttree.yaml",
      "*.vtesttree.yml",
      "*.vtesttree.json"
    ],
    "parsers": [
      "json",
      "yaml"
    ]
  },
  "type": "object",
  "$ref": "#/$defs/ebb0b/full",
  "$defs": {
    "ebb0b": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "vtesttree.yaml",
        "description": "Vector test execution tree description",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "version"
        ],
        "properties": {
          "version": {
            "$ref": "#/definitions/b52ca/full"
          },
          "test-tree": {
            "$ref": "#/definitions/17fb5/full"
          }
        }
      }
    },
    "b52ca": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Version",
        "description": "Json schema version for the vtesttree.yaml file. Acceptance criteria: equal major version, less/equal minor and patch version.",
        "const": "2.3.0",
        "type": "string",
        "examples": [
          "2.3.0"
        ]
      }
    },
    "e98fd": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": ".NET test case",
        "description": "Definition of a call to a .NET test case.",
        "type": "object",
        "required": [
          "dotnet-test-case"
        ],
        "additionalProperties": false,
        "properties": {
          "dotnet-test-case": {
            "type": "string",
            "description": "Function name of the .NET test case."
          },
          "id": {
            "type": "string",
            "description": "Identifier of the .NET test case."
          },
          "title": {
            "type": "string",
            "description": "Title of the .NET test case."
          },
          "description": {
            "type": "string",
            "description": "Description of the .NET test case."
          },
          "params": {
            "$ref": "#/definitions/942bd/full"
          },
          "variant-dependencies": {
            "$ref": "#/definitions/933e9/full"
          }
        }
      }
    },
    "fd551": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": ".NET test case list",
        "description": "Definition of calls to a .NET test case with a list of parameter combinations.",
        "type": "object",
        "required": [
          "dotnet-test-case-list",
          "param-values"
        ],
        "additionalProperties": false,
        "properties": {
          "dotnet-test-case-list": {
            "type": "string",
            "description": "Function name of the .NET test case."
          },
          "id": {
            "type": "string",
            "description": "Identifier used for all created .NET test case calls."
          },
          "title": {
            "type": "string",
            "description": "Title of the .NET test case calls."
          },
          "param-values": {
            "$ref": "#/definitions/69996/full"
          },
          "combinatorics": {
            "$ref": "#/definitions/95474/full"
          },
          "variant-dependencies": {
            "$ref": "#/definitions/933e9/full"
          }
        }
      }
    },
    "ca40f": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": ".NET test sequence",
        "description": "Definition of a call to a .NET test sequence.",
        "type": "object",
        "required": [
          "dotnet-test-sequence"
        ],
        "additionalProperties": false,
        "properties": {
          "dotnet-test-sequence": {
            "type": "string",
            "description": "Function name of the .NET test sequence."
          },
          "title": {
            "type": "string",
            "description": "Title of the .NET test sequence."
          },
          "params": {
            "$ref": "#/definitions/942bd/full"
          },
          "variant-dependencies": {
            "$ref": "#/definitions/933e9/full"
          }
        }
      }
    },
    "d0f50": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": ".NET test sequence list",
        "description": "Definition of calls to a .NET test sequence with a list of parameter combinations.",
        "type": "object",
        "required": [
          "dotnet-test-sequence-list",
          "param-values"
        ],
        "additionalProperties": false,
        "properties": {
          "dotnet-test-sequence-list": {
            "type": "string",
            "description": "Function name of the .NET test sequence."
          },
          "title": {
            "type": "string",
            "description": "Title of the .NET test sequence calls."
          },
          "param-values": {
            "$ref": "#/definitions/69996/full"
          },
          "combinatorics": {
            "$ref": "#/definitions/95474/full"
          },
          "variant-dependencies": {
            "$ref": "#/definitions/933e9/full"
          }
        }
      }
    },
    "e3001": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Python test case",
        "description": "Definition of a call to a Python test case.",
        "type": "object",
        "required": [
          "python-test-case"
        ],
        "additionalProperties": false,
        "properties": {
          "python-test-case": {
            "type": "string",
            "description": "Function name of the Python test case."
          },
          "id": {
            "type": "string",
            "description": "Identifier of the Python test case."
          },
          "title": {
            "type": "string",
            "description": "Title of the Python test case."
          },
          "description": {
            "type": "string",
            "description": "Description of the Python test case."
          },
          "params": {
            "$ref": "#/definitions/942bd/full"
          },
          "variant-dependencies": {
            "$ref": "#/definitions/933e9/full"
          }
        }
      }
    },
    "b896c": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Test fixture",
        "description": "Definition of a test fixture containing other test fixtures, test cases and test sequences.",
        "type": "object",
        "required": [
          "test-fixture"
        ],
        "additionalProperties": false,
        "properties": {
          "test-fixture": {
            "type": "string",
            "description": "Name of the test fixture."
          },
          "description": {
            "type": "string",
            "description": "Description of the test fixture."
          },
          "elements": {
            "type": "array",
            "items": {
              "$ref": "#/definitions/21bc6/full"
            }
          },
          "capl-preparation": {
            "$ref": "#/definitions/6b2dc/full"
          },
          "capl-completion": {
            "$ref": "#/definitions/54627/full"
          },
          "dotnet-preparation": {
            "$ref": "#/definitions/57796/full"
          },
          "dotnet-completion": {
            "$ref": "#/definitions/ffb07/full"
          },
          "python-preparation": {
            "$ref": "#/definitions/84433/full"
          },
          "python-completion": {
            "$ref": "#/definitions/96fd7/full"
          },
          "variant-dependencies": {
            "$ref": "#/definitions/933e9/full"
          }
        },
        "dependencies": {
          "capl-completion": {
            "allOf": [
              {
                "not": {
                  "required": [
                    "dotnet-completion"
                  ]
                }
              },
              {
                "not": {
                  "required": [
                    "python-completion"
                  ]
                }
              }
            ]
          },
          "dotnet-completion": {
            "allOf": [
              {
                "not": {
                  "required": [
                    "capl-completion"
                  ]
                }
              },
              {
                "not": {
                  "required": [
                    "python-completion"
                  ]
                }
              }
            ]
          },
          "python-completion": {
            "allOf": [
              {
                "not": {
                  "required": [
                    "dotnet-completion"
                  ]
                }
              },
              {
                "not": {
                  "required": [
                    "capl-completion"
                  ]
                }
              }
            ]
          },
          "capl-preparation": {
            "allOf": [
              {
                "not": {
                  "required": [
                    "dotnet-preparation"
                  ]
                }
              },
              {
                "not": {
                  "required": [
                    "python-preparation"
                  ]
                }
              }
            ]
          },
          "dotnet-preparation": {
            "allOf": [
              {
                "not": {
                  "required": [
                    "capl-preparation"
                  ]
                }
              },
              {
                "not": {
                  "required": [
                    "python-preparation"
                  ]
                }
              }
            ]
          },
          "python-preparation": {
            "allOf": [
              {
                "not": {
                  "required": [
                    "dotnet-preparation"
                  ]
                }
              },
              {
                "not": {
                  "required": [
                    "capl-preparation"
                  ]
                }
              }
            ]
          }
        }
      }
    },
    "ffb07": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": ".NET completion",
        "type": "string",
        "description": "Function name of the .NET completion."
      }
    },
    "ccf9c": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "parameter",
        "description": "Parameter value for a test case or test sequence.",
        "anyOf": [
          {
            "title": "Numeric Value",
            "type": "number"
          },
          {
            "title": "String Value",
            "type": "string"
          }
        ]
      }
    },
    "17fb5": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Test tree",
        "description": "Definition of a test tree consisting of test fixtures, test cases and test sequences.",
        "type": "array",
        "items": {
          "$ref": "#/definitions/21bc6/full"
        }
      }
    },
    "21bc6": {
      "full": {
        "description": "Element of a test tree or test fixture.",
        "oneOf": [
          {
            "$ref": "#/definitions/6ce30/full"
          },
          {
            "$ref": "#/definitions/88c87/full"
          },
          {
            "$ref": "#/definitions/0e9b4/full"
          },
          {
            "$ref": "#/definitions/86123/full"
          },
          {
            "$ref": "#/definitions/e98fd/full"
          },
          {
            "$ref": "#/definitions/fd551/full"
          },
          {
            "$ref": "#/definitions/ca40f/full"
          },
          {
            "$ref": "#/definitions/d0f50/full"
          },
          {
            "$ref": "#/definitions/e3001/full"
          },
          {
            "$ref": "#/definitions/88302/full"
          },
          {
            "$ref": "#/definitions/43cc1/full"
          },
          {
            "$ref": "#/definitions/41b94/full"
          },
          {
            "$ref": "#/definitions/b896c/full"
          }
        ]
      }
    },
    "6ce30": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "CAPL test case",
        "description": "Definition of a call to a CAPL test case.",
        "type": "object",
        "required": [
          "capl-test-case"
        ],
        "additionalProperties": false,
        "properties": {
          "capl-test-case": {
            "type": "string",
            "description": "Function name of the CAPL test case."
          },
          "id": {
            "type": "string",
            "description": "Identifier of the CAPL test case."
          },
          "title": {
            "type": "string",
            "description": "Title of the CAPL test case."
          },
          "description": {
            "type": "string",
            "description": "Description of the CAPL test case."
          },
          "params": {
            "$ref": "#/definitions/942bd/full"
          },
          "variant-dependencies": {
            "$ref": "#/definitions/933e9/full"
          }
        }
      }
    },
    "88c87": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "CAPL test case list",
        "description": "Definition of calls to a CAPL test case with a list of parameter combinations.",
        "type": "object",
        "required": [
          "capl-test-case-list",
          "param-values"
        ],
        "additionalProperties": false,
        "properties": {
          "capl-test-case-list": {
            "type": "string",
            "description": "Function name of the CAPL test case."
          },
          "id": {
            "type": "string",
            "description": "Identifier used for all created CAPL test case calls."
          },
          "title": {
            "type": "string",
            "description": "Title of the CAPL test case calls."
          },
          "param-values": {
            "$ref": "#/definitions/69996/full"
          },
          "combinatorics": {
            "$ref": "#/definitions/95474/full"
          },
          "variant-dependencies": {
            "$ref": "#/definitions/933e9/full"
          }
        }
      }
    },
    "0e9b4": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "CAPL test sequence",
        "description": "Definition of a call to a CAPL test sequence.",
        "type": "object",
        "required": [
          "capl-test-sequence"
        ],
        "additionalProperties": false,
        "properties": {
          "capl-test-sequence": {
            "type": "string",
            "description": "Function name of the CAPL test sequence."
          },
          "title": {
            "type": "string",
            "description": "Title of the CAPL test sequence."
          },
          "params": {
            "$ref": "#/definitions/942bd/full"
          },
          "variant-dependencies": {
            "$ref": "#/definitions/933e9/full"
          }
        }
      }
    },
    "86123": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "CAPL test sequence list",
        "description": "Definition of calls to a CAPL test sequence with a list of parameter combinations.",
        "type": "object",
        "required": [
          "capl-test-sequence-list",
          "param-values"
        ],
        "additionalProperties": false,
        "properties": {
          "capl-test-sequence-list": {
            "type": "string",
            "description": "Function name of the CAPL test sequence."
          },
          "title": {
            "type": "string",
            "description": "Title of the CAPL test sequence calls."
          },
          "param-values": {
            "$ref": "#/definitions/69996/full"
          },
          "combinatorics": {
            "$ref": "#/definitions/95474/full"
          },
          "variant-dependencies": {
            "$ref": "#/definitions/933e9/full"
          }
        }
      }
    },
    "88302": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Python test case list",
        "description": "Definition of calls to a Python test case with a list of parameter combinations.",
        "type": "object",
        "required": [
          "python-test-case-list",
          "param-values"
        ],
        "additionalProperties": false,
        "properties": {
          "python-test-case-list": {
            "type": "string",
            "description": "Function name of the Python test case."
          },
          "id": {
            "type": "string",
            "description": "Identifier used for all created Python test case calls."
          },
          "title": {
            "type": "string",
            "description": "Title of the Python test case calls."
          },
          "param-values": {
            "$ref": "#/definitions/69996/full"
          },
          "combinatorics": {
            "$ref": "#/definitions/95474/full"
          },
          "variant-dependencies": {
            "$ref": "#/definitions/933e9/full"
          }
        }
      }
    },
    "43cc1": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Python test sequence",
        "description": "Definition of a call to a Python test sequence.",
        "type": "object",
        "required": [
          "python-test-sequence"
        ],
        "additionalProperties": false,
        "properties": {
          "python-test-sequence": {
            "type": "string",
            "description": "Function name of the Python test sequence."
          },
          "title": {
            "type": "string",
            "description": "Title of the Python test sequence."
          },
          "params": {
            "$ref": "#/definitions/942bd/full"
          },
          "variant-dependencies": {
            "$ref": "#/definitions/933e9/full"
          }
        }
      }
    },
    "41b94": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Python test sequence list",
        "description": "Definition of calls to a Python test sequence with a list of parameter combinations.",
        "type": "object",
        "required": [
          "python-test-sequence-list",
          "param-values"
        ],
        "additionalProperties": false,
        "properties": {
          "python-test-sequence-list": {
            "type": "string",
            "description": "Function name of the Python test sequence."
          },
          "title": {
            "type": "string",
            "description": "Title of the Python test sequence calls."
          },
          "param-values": {
            "$ref": "#/definitions/69996/full"
          },
          "combinatorics": {
            "$ref": "#/definitions/95474/full"
          },
          "variant-dependencies": {
            "$ref": "#/definitions/933e9/full"
          }
        }
      }
    },
    "942bd": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "parameter list",
        "description": "List of parameter values for a test case or test sequence.",
        "type": "array",
        "items": {
          "$ref": "#/definitions/ccf9c/full"
        }
      }
    },
    "933e9": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "variant dependencies",
        "description": "A condition based on variant property values. If the condition is not fulfilled, the node will not be added to the test tree. The variant property must be defined in the vtestunit.yaml. The only allowed operators are !=, == and ||.",
        "type": "string"
      }
    },
    "69996": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "array",
        "title": "parameter values list",
        "description": "List of lists of parameter values for a test case or test sequence. Each list specifies values for one parameter.",
        "items": {
          "$ref": "#/definitions/942bd/full"
        },
        "minItems": 1
      }
    },
    "95474": {
      "full": {
        "description": "The style of combinatorics to be used for parameter generation. The default value is sequential.",
        "type": "string",
        "oneOf": [
          {
            "const": "sequential"
          },
          {
            "const": "pairwise"
          },
          {
            "const": "combinatorial"
          }
        ]
      }
    },
    "6b2dc": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "CAPL preparation",
        "type": "string",
        "description": "Function name of the CAPL preparation."
      }
    },
    "54627": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "CAPL completion",
        "type": "string",
        "description": "Function name of the CAPL completion."
      }
    },
    "57796": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": ".NET preparation",
        "type": "string",
        "description": "Function name of the .NET preparation."
      }
    },
    "84433": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Python preparation",
        "type": "string",
        "description": "Function name of the Python preparation."
      }
    },
    "96fd7": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Python completion",
        "type": "string",
        "description": "Function name of the Python completion."
      }
    }
  }
}
