# yaml-language-server: $schema=http://json-schema.org/draft-07/schema
# SPDX-FileCopyrightText: 2014-2023 Institute for Automation of Complex Power Systems, RWTH Aachen University
# SPDX-License-Identifier: Apache-2.0
---
title: VILLASnode configuration file
description: Schema of the VILLASnode configuration file.

allOf:
- type: object
  required:
  - nodes

  additionalProperties: false

  properties:
    nodes:
      type: object
      title: Node list
      description: |
        A list of nodes to/from which this instance sends/receives sample data.
      additionalProperties:
        x-additionalPropertiesName: node-name
        $ref: ./config/node_obj.yaml

    paths:
      title: Path list
      description: |
        A list of uni-directional paths which connect the nodes defined in the `nodes` list.
      type: array
      default: []
      items:
        $ref: config/path.yaml

    http:
      $ref: config/http.yaml

    logging:
      $ref: config/logging.yaml

- $ref: config/global.yaml