{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/vtesttree-yaml/versions/2.2.0.json",
  "title": "vtesttree.yaml",
  "x-lintel": {
    "source": "https://www.schemastore.org/vtesttree-schema-v2.2.0.json",
    "sourceSha256": "050f832e7fd9a0abf35e8cc23500322bd8daff6409042fdea9baa5a790b62143",
    "fileMatch": [
      "*.vtesttree.yaml",
      "*.vtesttree.yml",
      "*.vtesttree.json"
    ],
    "parsers": [
      "json",
      "yaml"
    ]
  },
  "type": "object",
  "$ref": "#/$defs/04112/full",
  "$defs": {
    "a3b0c": {
      "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/534ca/full"
        }
      }
    },
    "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"
          }
        }
      }
    },
    "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"
          }
        }
      }
    },
    "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"
          }
        }
      }
    },
    "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"
          }
        ]
      }
    },
    "04112": {
      "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/6bcb6/full"
          },
          "test-tree": {
            "$ref": "#/definitions/a3b0c/full"
          }
        }
      }
    },
    "6bcb6": {
      "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.2.0",
        "type": "string",
        "examples": [
          "2.2.0"
        ]
      }
    },
    "534ca": {
      "full": {
        "description": "Element of a test tree or test fixture.",
        "oneOf": [
          {
            "$ref": "#/definitions/6ce30/full"
          },
          {
            "$ref": "#/definitions/0e9b4/full"
          },
          {
            "$ref": "#/definitions/e98fd/full"
          },
          {
            "$ref": "#/definitions/ca40f/full"
          },
          {
            "$ref": "#/definitions/e3001/full"
          },
          {
            "$ref": "#/definitions/43cc1/full"
          },
          {
            "$ref": "#/definitions/6ba9e/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"
          }
        }
      }
    },
    "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"
          }
        }
      }
    },
    "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"
          }
        }
      }
    },
    "6ba9e": {
      "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/534ca/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"
                  ]
                }
              }
            ]
          }
        }
      }
    },
    "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"
      }
    },
    "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."
      }
    }
  }
}
