# 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
---
allOf:
- type: object
  properties:
    format:
      $ref: ../format_spec.yaml

    filter:
      type: string
      enum:
      - pubsub
      - radiodish

    publish:
      type: string
      format: uri

    subscribe:
      oneOf:
      - type: string
        format: uri
      - type: array
        items:
          type: string
          format: uri

    ipv6:
      type: boolean
      default: false

    curve:
      title: CurveZMQ cryptography
      description: |
        **Note:** This feature is currently broken.

        You can use the [`villas zmq-keygen`](../usage/villas-zmq-keygen.md) command to create a new keypair for the following configuration options:

      type: object
      properties:
        enabled:
          type: boolean
          description: Whether or not the encryption is enabled.

        public_key:
          type: string
          description: |
            The public key of the server.

        private_key:
          type: string
          description: |
            The private key of the server.

    out:
      type: object
      properties:
        netem:
          $ref: ../netem.yaml

- $ref: ../node_signals.yaml
- $ref: ../node.yaml
