{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/venvironment-yaml/versions/1.1.0.json",
  "title": "venvironment schema",
  "x-lintel": {
    "source": "https://www.schemastore.org/venvironment-schema-v1.1.0.json",
    "sourceSha256": "e2ef5e1ae0e313f8053723dd4b933738778d7b3c2e791f2eb504cd800390c0d1",
    "fileMatch": [
      "venvironment.yaml",
      "*.venvironment.yaml",
      "venvironment.yml",
      "*.venvironment.yml",
      "venvironment.json",
      "*.venvironment.json"
    ],
    "parsers": [
      "json",
      "yaml"
    ]
  },
  "type": "object",
  "$ref": "#/$defs/fbd55/full",
  "$defs": {
    "fbd55": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "venvironment schema",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "version"
        ],
        "properties": {
          "version": {
            "$ref": "#/definitions/dad40/full"
          },
          "global-settings": {
            "$ref": "#/definitions/f5db4/full"
          },
          "includes": {
            "$ref": "#/definitions/85495/full"
          },
          "variables": {
            "$ref": "#/definitions/f9fcb/full"
          },
          "application-models": {
            "$ref": "#/definitions/90d4b/full"
          },
          "datasources": {
            "$ref": "#/definitions/015cb/full"
          },
          "functional-mockup-units": {
            "$ref": "#/definitions/f276a/full"
          },
          "sil-kit": {
            "$ref": "#/definitions/37df6/full"
          },
          "defines": {
            "$ref": "#/definitions/405a8/full"
          },
          "system-variables": {
            "$ref": "#/definitions/3eaba/full"
          },
          "xcp-configuration-files": {
            "$ref": "#/definitions/05c88/full"
          },
          "logging": {
            "$ref": "#/definitions/e94dc/full"
          },
          "simulation-nodes": {
            "$ref": "#/definitions/68979/full"
          },
          "databases": {
            "$ref": "#/definitions/13e53/full"
          },
          "can-networks": {
            "$ref": "#/definitions/828be/full"
          },
          "canfd-networks": {
            "$ref": "#/definitions/9dce0/full"
          },
          "ethernet-networks": {
            "$ref": "#/definitions/7d2f0/full"
          },
          "can-replay-blocks": {
            "$ref": "#/definitions/c67f4/full"
          },
          "ethernet-replay-blocks": {
            "$ref": "#/definitions/159ba/full"
          },
          "scenarios": {
            "$ref": "#/definitions/d1a67/full"
          }
        }
      }
    },
    "dad40": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Version",
        "description": "Json schema version for the vEnvironment configuration file. Acceptance criteria: equal major version, less/equal minor and patch version.",
        "const": "1.1.0",
        "type": "string",
        "examples": [
          "1.1.0"
        ]
      }
    },
    "f5db4": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Global Settings",
        "description": "Global settings for all scenarios.",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ethernet-settings": {
            "$ref": "#/definitions/843bf/full"
          },
          "time-scaling-factor": true,
          "time-source": {
            "description": "Time source for the simulation.",
            "default": "internal-realtime",
            "anyOf": [
              {
                "$ref": "#/definitions/779cd/full"
              },
              {
                "const": "internal-realtime",
                "description": "Operate without hardware and simulate all buses completely. The time response of the measurement (time basis) is controlled internally."
              },
              {
                "const": "external-software",
                "description": "Operate without hardware and simulate all buses completely. The time response of the measurement (time basis) is controlled by an external program."
              },
              {
                "const": "internal-scaled",
                "description": "Operate without hardware and simulate all buses completely. The simulation speed is provided through the property time-scaling-factor."
              }
            ],
            "examples": [
              "internal-realtime",
              "internal-scaled",
              "external-software"
            ]
          }
        },
        "allOf": [
          {
            "if": {
              "required": [
                "time-source"
              ],
              "properties": {
                "time-source": {
                  "const": "internal-scaled"
                }
              }
            },
            "then": {
              "properties": {
                "time-scaling-factor": {
                  "anyOf": [
                    {
                      "type": "number",
                      "exclusiveMinimum": 0,
                      "maximum": 1.7976931348623157e+308,
                      "description": "The measurement is slowed-down by this factor. For scaling factors between zero and one, the simulation is accelerated accordingly. For example, if you enter the value 0.1 the measurement is accelerated by a factor of 10."
                    },
                    {
                      "const": "as-fast-as-possible",
                      "description": "Run the simulation as fast as possible. The simulation speed is not constant and depends on the performance of the computer and the load that is provoked by simulation."
                    },
                    {
                      "$ref": "#/definitions/779cd/full"
                    }
                  ],
                  "default": "as-fast-as-possible",
                  "examples": [
                    "as-fast-as-possible",
                    "0.01",
                    "0.05",
                    "0.1",
                    "0.5",
                    "1",
                    "5",
                    "10",
                    "50",
                    "100",
                    "500"
                  ]
                }
              }
            }
          }
        ],
        "examples": [
          {
            "ethernet-settings": {
              "access-mode": "network-based"
            }
          },
          {
            "ethernet-settings": {
              "access-mode": "channel-based",
              "signal-updates": "always"
            }
          },
          {
            "time-source": "internal-realtime"
          },
          {
            "time-source": "internal-scaled",
            "time-scaling-factor": 6
          }
        ]
      }
    },
    "f9fcb": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Variables",
        "description": "List of variables to be used in this configuration file.",
        "type": "array",
        "items": {
          "$ref": "#/definitions/03ea7/full"
        },
        "examples": [
          [
            {
              "name": "var",
              "value": -42
            }
          ],
          [
            {
              "name": "my_string",
              "value": "implicit-type"
            },
            {
              "name": "var",
              "value": 422200000000.0,
              "type": "float"
            },
            {
              "name": "path_var",
              "value": "path/to/somewhere",
              "type": "path"
            },
            {
              "name": "uint_enum",
              "value": 43,
              "type": "uint",
              "options": [
                1,
                43,
                127
              ]
            }
          ]
        ]
      }
    },
    "f276a": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Functional mockup units",
        "description": "List of functional mockup units. Entries can be deactivated with when.",
        "type": "array",
        "items": {
          "$ref": "#/definitions/37850/full"
        },
        "examples": [
          [
            {
              "file-path": "path/to/some.fmu",
              "stepsize-in-sec": 0.001
            }
          ],
          [
            {
              "file-path": "path/to/some.fmu",
              "stepsize-in-sec": 0.001,
              "debug-output": true
            }
          ],
          [
            {
              "file-path": "path/to/some.fmu",
              "stepsize-in-sec": 0.001,
              "debug-output": false,
              "active-model-variables": [
                "Variable1",
                "Variable2"
              ]
            }
          ],
          [
            {
              "file-path": "path/to/some.fmu",
              "stepsize-in-sec": 0.001,
              "debug-output": false,
              "inactive-model-variables": [
                "Variable3"
              ]
            }
          ]
        ]
      }
    },
    "e94dc": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Logging Block",
        "description": "Configuration of the standalone logging block.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "file-name"
        ],
        "properties": {
          "file-name": {
            "$ref": "#/definitions/799e1/full"
          },
          "logging-events": {
            "type": "array",
            "default": [
              "bus",
              "diagnostic",
              "internal",
              "statistic",
              "system-variable",
              "test"
            ],
            "items": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "bus",
                    "diagnostic",
                    "internal",
                    "statistic",
                    "system-variable",
                    "test"
                  ]
                },
                {
                  "$ref": "#/definitions/779cd/full"
                }
              ]
            }
          },
          "advanced": {
            "$ref": "#/definitions/c55d3/full"
          }
        },
        "examples": [
          {
            "file-name": "file-name.blf",
            "logging-events": [
              "bus",
              "diagnostic",
              "internal",
              "${someVariable}"
            ],
            "advanced": {
              "warn-overwritten-log-file": true,
              "show-error-on-data-loss": false
            }
          }
        ]
      }
    },
    "c67f4": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "CAN Replay Blocks",
        "description": "List of CAN replay blocks. Entries can be deactivated with when.",
        "type": "array",
        "items": {
          "$ref": "#/definitions/f68e2/full"
        },
        "examples": [
          [
            {
              "name": "my_can_replay_block",
              "file-path": "my_logging_file.blf"
            }
          ],
          [
            {
              "name": "my_can_replay_block",
              "file-path": "my_logging_file.blf",
              "when": "SCENARIO_NAME == \"my_scenario_name\""
            },
            {
              "name": "my_can_replay_block",
              "file-path": "another_logging_file.blf",
              "when": "SCENARIO_NAME == \"another_scenario_name\""
            }
          ]
        ]
      }
    },
    "d1a67": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Scenarios",
        "description": "List of scenarios with the option to define / override variables or defines.",
        "type": "array",
        "items": {
          "$ref": "#/definitions/4909e/full"
        },
        "examples": [
          [
            {
              "name": "my_scenario_name"
            }
          ],
          [
            {
              "name": "my_scenario_name"
            },
            {
              "name": "override_variables",
              "variables": [
                {
                  "name": "three",
                  "value": 3
                }
              ]
            },
            {
              "name": "override_defines",
              "defines": [
                "mydefine",
                "mydevine_with_value=42"
              ]
            }
          ]
        ]
      }
    },
    "b88a6": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "anyOf": [
          {
            "$ref": "#/definitions/4de3d/full"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/definitions/4de3d/full"
            },
            "examples": [
              [
                "path/to/my.vcdl"
              ],
              [
                "path/to/my.vcodm"
              ],
              [
                "path/to/my.vcdl",
                "path/to/my.vcodm",
                "${path_in_variable}",
                "path/${name_in_variable}"
              ]
            ]
          }
        ],
        "examples": [
          "path/to/my.vcdl",
          [
            "path/to/my.vcodm"
          ],
          [
            "path/to/my.vcdl",
            "path/to/my.vcodm",
            "${path_in_variable}",
            "path/${name_in_variable}"
          ]
        ]
      }
    },
    "c9f2a": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Absolute or relative path to a SIL Kit config file (.yaml or .json). Relative path specifications are resolved relative to the configuration file.",
        "type": "string",
        "anyOf": [
          {
            "pattern": "^.*\\.[yY][aA][mM][lL]$"
          },
          {
            "pattern": "^.*\\.[jJ][sS][oO][nN]$"
          },
          {
            "pattern": "^.*\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\}$"
          }
        ],
        "examples": [
          "path/to/myConfigFile.json",
          "path/to/myConfigFile.yaml",
          "${path_in_variable}",
          "path/${name_in_variable}"
        ]
      }
    },
    "c55d3": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Advanced logging configurations",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "warn-overwritten-log-file": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ],
            "default": true
          },
          "show-error-on-data-loss": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ],
            "default": true
          }
        },
        "examples": [
          {
            "warn-overwritten-log-file": false,
            "show-error-on-data-loss": true
          },
          {
            "warn-overwritten-log-file": true
          }
        ]
      }
    },
    "fe7b6": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "CAN network",
        "description": "A Network using the CAN protocol taking part in a simulation.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "$ref": "#/definitions/038dc/full"
          },
          "when": {
            "$ref": "#/definitions/09e40/full"
          },
          "databases": {
            "$ref": "#/definitions/01ff2/full"
          },
          "baudrate": {
            "description": "Baudrate in Baud.",
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 9223372036854775807,
                "default": 500000
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ]
          },
          "application-channel": {
            "description": "Index of the Application Channel. Each busytype should provide consecutive indices. Starts counting at 1. Value between 1 and 255. Value '0' is not allowed. Caution: CAN and CANFD share the Application Channels!",
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 255,
                "default": 1
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ]
          },
          "mapping": {
            "$ref": "#/definitions/0f9b3/full"
          }
        },
        "examples": [
          {
            "name": "my_can_network"
          },
          {
            "name": "my_can_network",
            "when": "SCENARIO_NAME == \"my_scenario_name\""
          },
          {
            "name": "my_can_network",
            "databases": [
              "DB_1",
              "DB_2"
            ],
            "application-channel": 42,
            "baudrate": 500000,
            "mapping": "internal-simulator"
          }
        ]
      }
    },
    "d92db": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "CANFD network",
        "description": "A Network using the CANFD protocol taking part in a simulation.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "$ref": "#/definitions/038dc/full"
          },
          "when": {
            "$ref": "#/definitions/09e40/full"
          },
          "databases": {
            "$ref": "#/definitions/01ff2/full"
          },
          "mode": {
            "description": "Operation Mode setting (iso or non-iso Mode).",
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "iso",
                  "non-iso"
                ],
                "default": "iso"
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ]
          },
          "arbitration-baudrate": {
            "description": "Baudrate for the arbitration phase of CAN FD in Baud.",
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 9223372036854775807,
                "default": 500000
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ]
          },
          "data-baudrate": {
            "description": "Baudrate for the data phase of CAN FD in Baud.",
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 9223372036854775807,
                "default": 1000000
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ]
          },
          "application-channel": {
            "description": "Index of the Application Channel. Each busytype should provide consecutive indices. Starts counting at 1. Value between 1 and 255. Value '0' is not allowed. Caution: CAN and CANFD share the Application Channels!",
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 255,
                "default": 1
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ]
          },
          "mapping": {
            "$ref": "#/definitions/0f9b3/full"
          }
        },
        "examples": [
          {
            "name": "my_canfd_network"
          },
          {
            "name": "my_canfd_network",
            "when": "SCENARIO_NAME == \"my_scenario_name\""
          },
          {
            "name": "my_canfd_network",
            "databases": [
              "DB_1",
              "DB_2"
            ],
            "application-channel": 42,
            "mode": "iso",
            "arbitration-baudrate": 500000,
            "data-baudrate": 1000000,
            "mapping": "internal-simulator"
          }
        ]
      }
    },
    "f68e2": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "CAN replay block",
        "description": "A replay block for the CAN protocol.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "file-path"
        ],
        "properties": {
          "name": {
            "$ref": "#/definitions/038dc/full"
          },
          "when": {
            "$ref": "#/definitions/09e40/full"
          },
          "file-path": {
            "$ref": "#/definitions/79394/full"
          },
          "replay-on-measurement-start": {
            "description": "Replay starts with measurement start",
            "anyOf": [
              {
                "type": "boolean",
                "default": true
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ],
            "examples": [
              true,
              false,
              "${variable}"
            ]
          },
          "send-system-variables": {
            "description": "Send system variable values.",
            "anyOf": [
              {
                "type": "boolean",
                "default": true
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ],
            "examples": [
              true,
              false,
              "${variable}"
            ]
          },
          "start-timing-condition": {
            "$ref": "#/definitions/b8d33/full"
          },
          "channel-mapping": {
            "$ref": "#/definitions/300bd/full"
          },
          "send-tx-messages": {
            "description": "Replay the tx messages.",
            "anyOf": [
              {
                "type": "boolean",
                "default": true
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ],
            "examples": [
              true,
              false,
              "${variable}"
            ]
          },
          "send-rx-messages": {
            "description": "Replay the rx messages.",
            "anyOf": [
              {
                "type": "boolean",
                "default": true
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ],
            "examples": [
              true,
              false,
              "${variable}"
            ]
          }
        },
        "examples": [
          {
            "name": "ReplayBlock",
            "file-path": "MyLoggingFile.blf"
          },
          {
            "name": "ReplayBlock",
            "file-path": "MyLoggingFile.blf",
            "when": "SCENARIO_NAME == \"MyScenario\""
          },
          {
            "name": "ReplayBlock",
            "file-path": "MyLoggingFile.blf",
            "replay-on-measurement-start": true,
            "send-system-variables": false,
            "send-tx-messages": true,
            "send-rx-messages": false,
            "start-timing-condition": {
              "condition": "immediately"
            },
            "channel-mapping": {
              "default-mapping": "as-in-original"
            }
          }
        ]
      }
    },
    "b73a4": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Global configuration for the TCP/IP stack.",
        "anyOf": [
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "selected-stack"
            ],
            "properties": {
              "selected-stack": {
                "description": "If set to operating-system, the machines configuration is used. If set to canoe, a custom configuration can be provided",
                "anyOf": [
                  {
                    "const": "operating-system",
                    "description": "If set to operating-system, the machines configuration is used. (use 'canoe' if settings should be manually provided)"
                  }
                ],
                "examples": [
                  "canoe",
                  "operating-system"
                ]
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "selected-stack"
            ],
            "properties": {
              "selected-stack": {
                "description": "If set to operating-system, the machines configuration is used. If set to canoe, a custom configuration can be provided",
                "anyOf": [
                  {
                    "const": "canoe",
                    "description": "If set to canoe, a custom configuration can be provided. (remove other elements for option operating-system)"
                  },
                  {
                    "$ref": "#/definitions/779cd/full"
                  }
                ],
                "examples": [
                  "canoe",
                  "operating-system"
                ]
              },
              "activate-routing": {
                "$ref": "#/definitions/6d6c1/full"
              },
              "tcp-delayed-ack": {
                "$ref": "#/definitions/b4b72/full"
              },
              "timestamp-option-RFC1323": {
                "$ref": "#/definitions/31725/full"
              },
              "ttl": {
                "$ref": "#/definitions/ee197/full"
              },
              "ipv4-gateway": {
                "$ref": "#/definitions/a0f9c/full"
              },
              "ipv6-gateway": {
                "$ref": "#/definitions/e231b/full"
              }
            }
          }
        ]
      }
    },
    "f52d1": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "List of defines to be passed to capl / vcdl.",
        "type": "array",
        "items": {
          "$ref": "#/definitions/d6fe8/full"
        },
        "examples": [
          [
            "mydefine1",
            "mydefine2"
          ],
          [
            "mydefine_with_value=42",
            "${var_with_define_name}=${var_with_define_value}"
          ]
        ]
      }
    },
    "d6fe8": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Define to be passed to capl / vcdl.",
        "type": "string",
        "pattern": "^([a-zA-Z_]|([a-zA-Z_][a-zA-Z0-9_]*)?\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\})[a-zA-Z0-9_]*(=((0|[1-9][0-9]*)|(\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\})|[Tt]rue|[Ff]alse))?$",
        "examples": [
          "mydefine1",
          "mydefine2",
          "mydefine_with_value=42",
          "${var_with_define_name}=${var_with_define_value}"
        ]
      }
    },
    "dc7e6": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Absolute or relative path to a vsysvar file. Relative path specifications are resolved relative to the configuration file.",
        "type": "string",
        "anyOf": [
          {
            "pattern": "^.*\\.[vV][sS][yY][sS][vV][aA][rR]$"
          },
          {
            "pattern": "^.*\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\}$"
          }
        ],
        "examples": [
          "path/to/my.vsysvar",
          "${path_in_variable}",
          "path/${name_in_variable}"
        ]
      }
    },
    "a10be": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Absolute or relative path to a source file of a simulation node.  Relative path specifications are resolved relative to the defining configuration file.",
        "type": "string",
        "anyOf": [
          {
            "pattern": "^.*\\.[Cc][Aa][Nn]$"
          },
          {
            "pattern": "^.*\\.[Cc][Ss]$"
          },
          {
            "pattern": "^.*\\.[Ss][Ll][Nn]$"
          },
          {
            "pattern": "^.*\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\}$"
          }
        ],
        "examples": [
          "path/to/my_capl_script.can",
          "path/to/my_dotnet.cs",
          "path/to/my_visual_studio.sln",
          "${path_in_variable}",
          "path/${name_in_variable}"
        ]
      }
    },
    "b1f6d": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Absolute or relative path to a vmodule file. Relative path specifications are resolved relative to the configuration file.",
        "type": "string",
        "anyOf": [
          {
            "pattern": "^.*\\.[vV][mM][oO][dD][uU][lL][eE]$"
          },
          {
            "pattern": "^.*\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\}$"
          }
        ],
        "examples": [
          "CANoeILNLVector.vmodule",
          "SomeIP_IL.vmodule",
          "AsrPDUIL2.vmodule",
          "OSEKNM01.vmodule",
          "DMOSEKNM.vmodule",
          "AsrNM30.vmodule",
          "AsrNM33.vmodule",
          "AsrUdpNm.vmodule",
          "AVB_IL.vmodule",
          "CANoeILNL_AUTOSAR_Eth.vmodule",
          "SCC_ChargePoint.vmodule",
          "SCC_Monitor.vmodule",
          "SCC_Vehicle.vmodule",
          "path/to/my.vmodule",
          "${path_in_variable}",
          "path/${name_in_variable}"
        ]
      }
    },
    "dfa4a": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Simulation node configuration for the TCP/IP stack.",
        "anyOf": [
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "selected-stack"
            ],
            "properties": {
              "selected-stack": {
                "description": "If set to operating-system, the machines configuration is used.\n If set to canoe, the configuration on the global level is used (this requires globals-settings/ethernet-settings/tcp-ip-stack/selected-stack to be set to canoe).\n If set to individual, a custom configuration can be provided",
                "enum": [
                  "operating-system",
                  "canoe"
                ],
                "default": "individual",
                "examples": [
                  "operating-system",
                  "canoe",
                  "individual"
                ]
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "selected-stack"
            ],
            "properties": {
              "selected-stack": {
                "description": "If set to operating-system, the machines configuration is used.\n If set to canoe, the configuration on the global level is used (this requires globals-settings/ethernet-settings/tcp-ip-stack/selected-stack to be set to canoe).\n If set to individual, a custom configuration can be provided",
                "anyOf": [
                  {
                    "enum": [
                      "individual"
                    ]
                  },
                  {
                    "$ref": "#/definitions/779cd/full"
                  }
                ],
                "default": "individual",
                "examples": [
                  "operating-system",
                  "canoe",
                  "individual"
                ]
              },
              "activate-routing": {
                "$ref": "#/definitions/6d6c1/full"
              },
              "tcp-delayed-ack": {
                "$ref": "#/definitions/b4b72/full"
              },
              "timestamp-option-RFC1323": {
                "$ref": "#/definitions/31725/full"
              },
              "ttl": {
                "$ref": "#/definitions/ee197/full"
              },
              "ipv4-gateway": {
                "$ref": "#/definitions/a0f9c/full"
              },
              "ipv6-gateway": {
                "$ref": "#/definitions/e231b/full"
              }
            }
          }
        ]
      }
    },
    "b8d33": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Timing conditions",
        "description": "Timing conditions for a replay block.",
        "type": "object",
        "additionalProperties": false,
        "required": [],
        "properties": {
          "condition": {
            "description": "The condition when the replay shall start.",
            "anyOf": [
              {
                "const": "immediately",
                "description": "The first event of the replayed file occurs with measurement start."
              },
              {
                "const": "first-event-time",
                "description": "The original timestamp of the replayed file are used."
              },
              {
                "const": "delayed",
                "description": "The first event is delayed. Can be configured by the 'delayed-ms' element."
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ]
          },
          "delay-ms": {
            "description": "The delay in ms if the condition 'delayed' is selected. No effect otherwise.",
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 9223372036854775807,
                "default": 0
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ]
          }
        },
        "examples": [
          {
            "condition": "immediately"
          },
          {
            "condition": "first-event-time"
          },
          {
            "condition": "delayed",
            "delay-ms": 1000
          },
          {
            "condition": "${variable}"
          }
        ]
      }
    },
    "b4b72": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Activates the TCP Delayed Ack Option.",
        "anyOf": [
          {
            "$ref": "#/definitions/779cd/full"
          },
          {
            "type": "boolean"
          }
        ],
        "default": true
      }
    },
    "ee197": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Time To Live.",
        "default": 64,
        "anyOf": [
          {
            "type": "integer",
            "minimum": 0
          },
          {
            "$ref": "#/definitions/779cd/full"
          }
        ]
      }
    },
    "a0f9c": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "IPv4-Address of the Gateway",
        "anyOf": [
          {
            "$ref": "#/definitions/779cd/full"
          },
          {
            "$ref": "#/definitions/ea732/full"
          }
        ],
        "default": "0.0.0.0"
      }
    },
    "e231b": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "IPv6-Address of the Gateway",
        "anyOf": [
          {
            "$ref": "#/definitions/779cd/full"
          },
          {
            "$ref": "#/definitions/bbbd7/full"
          }
        ],
        "default": "::1"
      }
    },
    "d4ffb": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "A network node represented by this application.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "network"
        ],
        "properties": {
          "network": {
            "$ref": "#/definitions/17e6a/full",
            "description": "For assignment of this NetworkNode to a Network.",
            "examples": [
              "network_name"
            ]
          },
          "database-node": {
            "$ref": "#/definitions/21023/full"
          },
          "lin-role": {
            "anyOf": [
              {
                "$ref": "#/definitions/183d9/full"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/183d9/full"
                }
              }
            ]
          },
          "tcp-ip-stack-adapter": {
            "$ref": "#/definitions/907df/full"
          }
        },
        "examples": [
          {
            "network": "my_can_network_1"
          },
          {
            "network": "my_can_network_1",
            "lin-role": "master"
          },
          {
            "network": "my_can_network_1",
            "lin-role": [
              "master",
              "config-tester"
            ]
          },
          {
            "network": "my_can_network_1",
            "database-node": {
              "database": "mydatabase",
              "node": "mynode"
            }
          }
        ]
      }
    },
    "ea732": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "IPv4 address",
        "type": "string",
        "anyOf": [
          {
            "pattern": "((1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\\.){3}(1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])"
          },
          {
            "$ref": "#/definitions/779cd/full"
          }
        ],
        "examples": [
          "127.0.0.1",
          "192.168.0.0",
          "172.16.0.0",
          "10.0.0.0"
        ]
      }
    },
    "bbbd7": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "IPv6 address",
        "type": "string",
        "anyOf": [
          {
            "pattern": "^([0-9A-Fa-f]{1,4}(:[0-9A-Fa-f]{1,4}){7}|:(:[0-9A-Fa-f]{1,4}){1,7}|([0-9A-Fa-f]{1,4}:){1,7}:|::|([0-9A-Fa-f]{1,4}:){1}(:[0-9A-Fa-f]{1,4}){1,6}|([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5}|([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4}|([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3}|([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2}|([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}){1})$"
          },
          {
            "$ref": "#/definitions/779cd/full"
          }
        ],
        "examples": [
          "1234:0000:0000:0000:0000:0000:0000:abcd",
          "1234::abcd",
          "::1"
        ]
      }
    },
    "66666": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "List of IPv6 addresses with their subnet definition",
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "address",
            "subnet-prefix-length"
          ],
          "properties": {
            "address": {
              "$ref": "#/definitions/bbbd7/full"
            },
            "subnet-prefix-length": {
              "description": "Subnetprefix of an IPv6 Address",
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 128
                },
                {
                  "$ref": "#/definitions/779cd/full"
                }
              ],
              "examples": [
                0,
                48,
                128
              ]
            }
          }
        },
        "examples": [
          [
            {
              "address": "1234::abce",
              "subnet-prefix-length": 42
            }
          ],
          [
            {
              "address": "1234::abcf",
              "subnet-prefix-length": 24
            }
          ]
        ]
      }
    },
    "90d4b": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Application Models",
        "description": "List of application models representing some program. Entries can be deactivated with when.",
        "type": "array",
        "items": {
          "$ref": "#/definitions/8e790/full"
        },
        "examples": [
          [
            {
              "file-path": "path/to/my/file.can",
              "defines": [
                "mydefine1",
                "mydefine=2"
              ]
            }
          ]
        ]
      }
    },
    "015cb": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Datasources",
        "description": "The definition of datasources used by application models. Input files can be deactivated with when.",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "input-files": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "file-path"
              ],
              "properties": {
                "when": {
                  "$ref": "#/definitions/09e40/full"
                },
                "file-path": {
                  "$ref": "#/definitions/b88a6/full"
                }
              }
            }
          }
        },
        "examples": [
          {
            "input-files": [
              {
                "file-path": "path/to/my.vcdl"
              }
            ]
          },
          {
            "input-files": [
              {
                "file-path": [
                  "path/to/my.vcodm",
                  "${path_in_variable}",
                  "path/${name_in_variable}"
                ]
              }
            ]
          },
          {
            "input-files": [
              {
                "file-path": "path/to/my.vcdl",
                "when": "SCENARIO_NAME == \"my_scenario_name\""
              }
            ]
          }
        ]
      }
    },
    "37df6": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "SIL Kit",
        "description": "SIL Kit settings. Entry can be deactivated with when.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "participant-name"
        ],
        "properties": {
          "when": {
            "$ref": "#/definitions/09e40/full"
          },
          "registry-uri": {
            "description": "registry URI",
            "type": "string",
            "anyOf": [
              {
                "pattern": "^[^:]+://[^:/]+(:[0-9]+)?(/[^?#/]+)*(\\?([^=#&]+=[^=#&]+)(&([^=#&]+=[^=#&]+))*)?(#.+)?"
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ],
            "examples": [
              "silkit://localhost:8500"
            ]
          },
          "participant-name": {
            "description": "Name used by CANoe4SW to join a simulation as a participant at the start of a measurement.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ],
            "examples": [
              "CANoe4SW"
            ]
          },
          "config-file-path": {
            "$ref": "#/definitions/c9f2a/full"
          },
          "simulation-step-in-micro-sec": {
            "description": "Time length of a single simulation step. Valid only for the time-source \"external-software\". Default: 100 us.",
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 9223372036854775807,
                "default": 100
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ]
          },
          "life-cycle-event-timeout-in-sec": {
            "description": "Maximum waiting time for the other simulation participants. Valid only for the time-source \"external-software\". Default: 30s.",
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 9223372036854775807,
                "default": 30
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ]
          }
        },
        "examples": [
          {
            "registry-uri": "silkit://localhost:8500",
            "participant-name": "CANoe4SW",
            "config-file-path": "path/to/config-file.json"
          },
          {
            "registry-uri": "silkit://localhost:8500",
            "participant-name": "CANoe4SW",
            "config-file-path": "path/to/config-file.json",
            "simulation-step-in-micro-sec": 150
          },
          {
            "registry-uri": "silkit://localhost:8500",
            "participant-name": "CANoe4SW",
            "config-file-path": "path/to/config-file.json",
            "simulation-step-in-micro-sec": 150,
            "life-cycle-event-timeout-in-sec": 30
          }
        ]
      }
    },
    "405a8": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Defines",
        "description": "List of defines to be passed to capl / vcdl. Entries can be deactivated with when.",
        "type": "array",
        "items": {
          "$ref": "#/definitions/9d23c/full"
        },
        "examples": [
          [
            {
              "define": "mydefine1"
            }
          ],
          [
            {
              "define": [
                "mydefine1",
                "mydefine2"
              ]
            },
            {
              "define": [
                "mydefine1",
                "mydefine2"
              ],
              "when": "SCENARIO_NAME == \"my_scenario_name\""
            },
            {
              "define": [
                "mydefine_with_value=42",
                "${var_with_define_name}=${var_with_define_value}"
              ]
            }
          ]
        ]
      }
    },
    "3eaba": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "System Variables",
        "description": "A lists of system variables to be used by the simulation. Entries can be deactivated with when.",
        "type": "array",
        "items": {
          "$ref": "#/definitions/21f87/full"
        },
        "examples": [
          [
            {
              "file-path": "path/to/my.vsysvar"
            }
          ],
          [
            {
              "file-path": [
                "${path_in_variable}",
                "path/${name_in_variable}"
              ]
            },
            {
              "file-path": "path/to/my.vsysvar",
              "when": "SCENARIO_NAME == \"my_scenario_name\""
            }
          ]
        ]
      }
    },
    "05c88": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "XCP files",
        "description": "List of XCP configuration files (entries can be deactivated with when)",
        "type": "array",
        "items": {
          "$ref": "#/definitions/31be0/full"
        },
        "examples": [
          [
            {
              "file-path": "path/to/my.xcpcfg"
            }
          ],
          [
            {
              "file-path": [
                "${path_in_variable}",
                "path/${name_in_variable}"
              ]
            },
            {
              "file-path": "path/to/my.xcpcfg",
              "when": "SCENARIO_NAME == \"my_scenario_name\""
            }
          ]
        ]
      }
    },
    "68979": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Simulation Nodes",
        "description": "A list of simulation nodes used in a simulation. Entries can be deactivated with when.",
        "type": "array",
        "items": {
          "$ref": "#/definitions/39ec1/full"
        },
        "examples": [
          [
            {
              "name": "mynode",
              "network-assignments": [
                {
                  "network": "my_can_network_1"
                }
              ]
            }
          ],
          [
            {
              "name": "mynode",
              "network-assignments": [
                {
                  "network": "my_can_network_1"
                }
              ],
              "file-path": "path/to/my_capl_script.can",
              "when": "SCENARIO_NAME == \"my_scenario_name1\""
            },
            {
              "name": "mynode",
              "file-path": "path/to/my_dotnet.cs",
              "network-assignments": [
                {
                  "network": "my_can_network_1",
                  "database-node": {
                    "database": "mydatabase",
                    "node": "mynode"
                  }
                }
              ],
              "defines": [
                "mydefine1",
                "mydefine2"
              ],
              "modeling-libraries": [
                "modeling/lib/1.vmodule",
                "${path_in_var}"
              ],
              "when": "SCENARIO_NAME == \"my_scenario_name2\""
            }
          ]
        ]
      }
    },
    "13e53": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Databases",
        "description": "List of databases. Entries can be deactivated with when.",
        "type": "array",
        "items": {
          "$ref": "#/definitions/3071b/full"
        },
        "examples": [
          [
            {
              "name": "mydbname",
              "file-path": "path/to/some.dbc"
            }
          ],
          [
            {
              "name": "mydbname",
              "file-path": "path/to/some.dbc"
            },
            {
              "name": "mydbname",
              "file-path": "path/to/some.arxml",
              "network-name": "network_in_db"
            },
            {
              "name": "mydbname",
              "file-path": "path/to/some.dbc",
              "when": "SCENARIO_NAME == \"my_scenario_name\""
            }
          ]
        ]
      }
    },
    "828be": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "CAN Networks",
        "description": "List of CAN networks. Entries can be deactivated with when.",
        "type": "array",
        "items": {
          "$ref": "#/definitions/fe7b6/full"
        },
        "examples": [
          [
            {
              "name": "my_can_network"
            }
          ],
          [
            {
              "name": "my_can_network",
              "when": "SCENARIO_NAME == \"my_scenario_name\""
            },
            {
              "name": "my_can_network",
              "databases": [
                "DB_1",
                "DB_2"
              ],
              "application-channel": 42,
              "baudrate": 500000,
              "mapping": "internal-simulator",
              "when": "SCENARIO_NAME == \"another_scenario\""
            }
          ]
        ]
      }
    },
    "9dce0": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "CANFD Networks",
        "description": "List of CANFD networks. Entries can be deactivated with when.",
        "type": "array",
        "items": {
          "$ref": "#/definitions/d92db/full"
        },
        "examples": [
          [
            {
              "name": "my_canfd_network"
            }
          ],
          [
            {
              "name": "my_canfd_network",
              "when": "SCENARIO_NAME == \"my_scenario_name\""
            },
            {
              "name": "my_canfd_network",
              "databases": [
                "DB_1",
                "DB_2"
              ],
              "application-channel": 42,
              "mode": "iso",
              "arbitration-baudrate": 500000,
              "data-baudrate": 1000000,
              "mapping": "internal-simulator"
            }
          ]
        ]
      }
    },
    "7d2f0": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "CAN Networks",
        "description": "List of Ethernet networks. Entries can be deactivated with when.",
        "type": "array",
        "items": {
          "$ref": "#/definitions/03439/full"
        },
        "examples": [
          [
            {
              "name": "my_eth_network"
            }
          ],
          [
            {
              "name": "my_eth_network",
              "when": "SCENARIO_NAME == \"my_scenario_name\""
            },
            {
              "name": "my_eth_network",
              "databases": [
                "DB_1",
                "DB_2"
              ],
              "application-channel": 12,
              "tcp-ip-stack-adapter": {
                "mac-address": "02:84:cf:3b:be:01"
              },
              "mapping": "external-sil-kit"
            },
            {
              "name": "my_eth_network",
              "databases": [
                "DB_1",
                "DB_2"
              ],
              "application-channel": 12,
              "mapping": "internal-simulator",
              "tcp-ip-stack-adapter": {
                "mtu": 1500,
                "ipv4-settings": {
                  "address-configuration": "static",
                  "addresses": [
                    {
                      "address": "192.168.0.1",
                      "subnet-mask": "255.255.0.0"
                    }
                  ]
                },
                "ipv6-settings": {
                  "address-configuration": "dhcp"
                },
                "vlans": [
                  {
                    "id": 42,
                    "priority": 0
                  }
                ]
              }
            }
          ]
        ]
      }
    },
    "159ba": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Ethernet Replay Blocks",
        "description": "List of ethernet replay blocks. Entries can be deactivated with when.",
        "type": "array",
        "items": {
          "$ref": "#/definitions/7965a/full"
        },
        "examples": [
          [
            {
              "name": "my_ethernet_replay_block",
              "file-path": "my_logging_file.blf"
            }
          ],
          [
            {
              "name": "my_ethernet_replay_block",
              "file-path": "my_logging_file.blf",
              "when": "SCENARIO_NAME == \"my_scenario_name\""
            },
            {
              "name": "my_ethernet_replay_block",
              "file-path": "another_logging_file.blf",
              "when": "SCENARIO_NAME == \"another_scenario_name\""
            }
          ]
        ]
      }
    },
    "843bf": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Global settings for Ethernet",
        "type": "object",
        "properties": {
          "access-mode": {
            "description": "Mode of the underlying Ethernet bus. Classic approach is the 'Channel-based' setup.       More recent and recommended mode is the switched 'Network-based' mode (port based).",
            "anyOf": [
              {
                "$ref": "#/definitions/779cd/full"
              },
              {
                "type": "string",
                "enum": [
                  "network-based",
                  "channel-based"
                ],
                "default": "network-based"
              }
            ]
          },
          "signal-updates": {
            "description": "Specifies how signals are updated on Network-based access. Will be ignored on Channel-based setups. Always: Events of all ports are used to update a signal without qualified ethernet port. rx-only: Only packets received by the interface are used, which leads to less duplicated updates. never: Signals without qualified ethernet ports are not updated.",
            "anyOf": [
              {
                "$ref": "#/definitions/779cd/full"
              },
              {
                "const": "always",
                "description": "Events of all ports are used to update a signal without qualified ethernet port."
              },
              {
                "const": "rx-only",
                "description": "Only packets received by the interface are used, which leads to less duplicated updates."
              },
              {
                "const": "never",
                "description": "Signals without qualified ethernet ports are not updated."
              }
            ]
          },
          "tcp-ip-stack": {
            "$ref": "#/definitions/b73a4/full"
          }
        },
        "additionalProperties": false,
        "examples": [
          {
            "access-mode": "network-based"
          },
          {
            "access-mode": "channel-based",
            "signal-updates": "always"
          },
          {
            "signal-updates": "rx-only"
          },
          {
            "signal-updates": "never"
          }
        ]
      }
    },
    "779cd": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "string",
        "pattern": "\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\}",
        "examples": [
          "${myvarname}"
        ]
      }
    },
    "21023": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Reference to a certain node from a database",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "node",
          "database"
        ],
        "properties": {
          "node": {
            "type": "string",
            "description": "The node from the database",
            "examples": [
              "node_name"
            ]
          },
          "database": {
            "$ref": "#/definitions/17e6a/full",
            "description": "The database"
          }
        },
        "examples": [
          {
            "database": "mydatabase",
            "node": "mynode"
          }
        ]
      }
    },
    "8e790": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Application Model",
        "description": "Represents an application used in a scenario",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "file-path"
        ],
        "properties": {
          "when": {
            "$ref": "#/definitions/09e40/full"
          },
          "file-path": {
            "$ref": "#/definitions/619f7/full"
          },
          "defines": {
            "$ref": "#/definitions/f52d1/full"
          }
        },
        "examples": [
          {
            "file-path": "path/to/my/file.can",
            "defines": [
              "mydefine1",
              "mydefine=2"
            ]
          },
          {
            "file-path": "path/to/my/file.can",
            "defines": [
              "mydefine1",
              "mydefine=2"
            ],
            "when": "SCENARIO_NAME == \"my_scenario_name\""
          }
        ]
      }
    },
    "09e40": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Declares when to add this node.",
        "anyOf": [
          {
            "$comment": "impossible to express this grammar as a regex",
            "type": "string"
          },
          {
            "type": "boolean"
          }
        ],
        "examples": [
          "SCENARIO_NAME == \"my_scenario_name\"",
          "some_variable == \"somevalue\"",
          "some_int_variable > 42 && some_other_int_variable <= 42",
          true
        ]
      }
    },
    "183d9": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Role of a node in a LIN network.",
        "type": "string",
        "enum": [
          "master",
          "slave",
          "config-tester"
        ],
        "examples": [
          "master",
          "slave",
          "config-tester"
        ]
      }
    },
    "9d23c": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Define",
        "description": "Defines to be passed to capl / vcdl.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "define"
        ],
        "properties": {
          "when": {
            "$ref": "#/definitions/09e40/full"
          },
          "define": {
            "anyOf": [
              {
                "$ref": "#/definitions/d6fe8/full"
              },
              {
                "$ref": "#/definitions/f52d1/full"
              }
            ]
          }
        },
        "examples": [
          {
            "define": "mydefine1"
          },
          {
            "define": [
              "mydefine1",
              "mydefine2"
            ]
          },
          {
            "define": [
              "mydefine1",
              "mydefine2"
            ],
            "when": "SCENARIO_NAME == \"my_scenario_name\""
          },
          {
            "define": [
              "mydefine_with_value=42",
              "${var_with_define_name}=${var_with_define_value}"
            ]
          }
        ]
      }
    },
    "21f87": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "System variables",
        "description": "Absolute or relative path to an external file containing system variables. Relative path specifications are resolved relative to the defining configuration file.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "file-path"
        ],
        "properties": {
          "when": {
            "$ref": "#/definitions/09e40/full"
          },
          "file-path": {
            "anyOf": [
              {
                "$ref": "#/definitions/dc7e6/full"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/dc7e6/full"
                }
              }
            ]
          }
        },
        "examples": [
          {
            "file-path": "path/to/my.vsysvar"
          },
          {
            "file-path": [
              "${path_in_variable}",
              "path/${name_in_variable}"
            ]
          },
          {
            "file-path": "path/to/my.vsysvar",
            "when": "SCENARIO_NAME == \"my_scenario_name\""
          }
        ]
      }
    },
    "31be0": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "XCP files",
        "description": "Absolute or relative path to an external xcpcfg file. Relative path specifications are resolved relative to the defining configuration file.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "file-path"
        ],
        "properties": {
          "when": {
            "$ref": "#/definitions/09e40/full"
          },
          "file-path": {
            "anyOf": [
              {
                "$ref": "#/definitions/568cc/full"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/568cc/full"
                }
              }
            ]
          }
        },
        "examples": [
          {
            "file-path": "path/to/my.xcpcfg"
          },
          {
            "file-path": [
              "${path_in_variable}",
              "path/${name_in_variable}"
            ]
          },
          {
            "file-path": "path/to/my.xcpcfg",
            "when": "SCENARIO_NAME == \"my_scenario_name\""
          }
        ]
      }
    },
    "799e1": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "$comment": "|<|>",
        "description": "Name of a blf file, supporting the field codes: {ComputerName}, {LocalTime}, {MeasurementIndex}, {MeasurementStart}, {IncSize|001|100MB} and {IncTime|001|01h00m}.",
        "type": "string",
        "anyOf": [
          {
            "pattern": "^(?!.*(\\{TriggerCondition\\}|\\{LoggingBlock\\}|\\{IncMeasurement\\}|\\{ConfigName\\}|\\{IncTrigger\\|[0-9]*\\}|[\"<>*?:/\\\\])).*\\.[bB][lL][fF]$"
          },
          {
            "pattern": "^.*\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\}$"
          }
        ],
        "examples": [
          "fileName.blf",
          "file_${SCENARIO_NAME}.blf",
          "${name_in_variable}",
          "log_{ComputerName}.blf",
          "log_{LocalTime}.blf",
          "log_{MeasurementIndex}.blf",
          "log_{MeasurementStart}.blf"
        ]
      }
    },
    "39ec1": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Simulation Node",
        "description": "Represents a simulation node used in a simulation",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "network-assignments"
        ],
        "properties": {
          "name": {
            "$ref": "#/definitions/038dc/full"
          },
          "when": {
            "$ref": "#/definitions/09e40/full"
          },
          "file-path": {
            "$ref": "#/definitions/a10be/full"
          },
          "network-assignments": {
            "$ref": "#/definitions/14a7c/full"
          },
          "defines": {
            "$ref": "#/definitions/f52d1/full"
          },
          "modeling-libraries": {
            "type": "array",
            "items": {
              "$ref": "#/definitions/b1f6d/full"
            },
            "description": "For assignment of modeling libraries to this simulation node"
          },
          "tcp-ip-stack": {
            "$ref": "#/definitions/dfa4a/full"
          }
        },
        "examples": [
          {
            "name": "mynode",
            "network-assignments": [
              {
                "network": "my_can_network_1"
              }
            ],
            "file-path": "path/to/my_capl_script.can",
            "when": "SCENARIO_NAME == \"my_scenario_name\""
          },
          {
            "name": "mynode",
            "file-path": "path/to/my_dotnet.cs",
            "network-assignments": [
              {
                "network": "my_can_network_1",
                "database-node": {
                  "database": "mydatabase",
                  "node": "mynode"
                }
              }
            ],
            "defines": [
              "mydefine1",
              "mydefine2"
            ],
            "modeling-libraries": [
              "modeling/lib/1.vmodule",
              "${path_in_var}"
            ],
            "when": "SCENARIO_NAME == \"my_scenario_name\""
          }
        ]
      }
    },
    "3071b": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Database",
        "description": "Absolute or relative path to an external database file (.dbc / .ldf / ...). Relative path specifications are resolved relative to the defining configuration file.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "file-path"
        ],
        "properties": {
          "name": {
            "$ref": "#/definitions/038dc/full"
          },
          "when": {
            "$ref": "#/definitions/09e40/full"
          },
          "network-name": {
            "type": "string"
          },
          "file-path": {
            "type": "string",
            "anyOf": [
              {
                "pattern": "^.*\\.[Aa][Rr][Xx][Mm][Ll]$"
              },
              {
                "pattern": "^.*\\.[Xx][Mm][Ll]$"
              },
              {
                "pattern": "^.*\\.[Dd][Bb][Cc]$"
              },
              {
                "pattern": "^.*\\.[Ll][Dd][Ff]$"
              },
              {
                "pattern": "^.*\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\}$"
              }
            ],
            "examples": [
              "path/to/some.dbc",
              "path/to/some.arxml",
              "path/to/some.xml",
              "path/to/some.ldf",
              "path/${var_with_name}",
              "${var_with_path}"
            ]
          }
        },
        "examples": [
          {
            "name": "mydbname",
            "file-path": "path/to/some.dbc"
          },
          {
            "name": "mydbname",
            "file-path": "path/to/some.arxml",
            "network-name": "network_in_db"
          },
          {
            "name": "mydbname",
            "file-path": "path/to/some.dbc",
            "when": "SCENARIO_NAME == \"my_scenario_name\""
          }
        ]
      }
    },
    "03439": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Ethernet network",
        "description": "A Network using the Ethernet protocol taking part in a simulation.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "$ref": "#/definitions/038dc/full"
          },
          "when": {
            "$ref": "#/definitions/09e40/full"
          },
          "databases": {
            "$ref": "#/definitions/01ff2/full"
          },
          "tcp-ip-stack-adapter": {
            "$ref": "#/definitions/907df/full"
          },
          "mapping": {
            "$ref": "#/definitions/0f9b3/full"
          },
          "application-channel": {
            "description": "Index of the Application Channel. Each busytype should provide consecutive indices. Starts counting at 1. Value between 1 and 32. Value '0' is not allowed.",
            "anyOf": [
              {
                "$ref": "#/definitions/779cd/full"
              },
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 32
              }
            ]
          }
        },
        "examples": [
          {
            "name": "my_eth_network"
          },
          {
            "name": "my_eth_network",
            "when": "SCENARIO_NAME == \"my_scenario_name\""
          },
          {
            "name": "my_eth_network",
            "databases": [
              "DB_1",
              "DB_2"
            ],
            "application-channel": 12,
            "tcp-ip-stack-adapter": {
              "mac-address": "02:84:cf:3b:be:01"
            },
            "mapping": "external-sil-kit"
          },
          {
            "name": "my_eth_network",
            "databases": [
              "DB_1",
              "DB_2"
            ],
            "application-channel": 12,
            "mapping": "internal-simulator",
            "tcp-ip-stack-adapter": {
              "mtu": 1500,
              "ipv4-settings": {
                "address-configuration": "static",
                "addresses": [
                  {
                    "address": "192.168.0.1",
                    "subnet-mask": "255.255.0.0"
                  }
                ]
              },
              "ipv6-settings": {
                "address-configuration": "dhcp"
              },
              "vlans": [
                {
                  "id": 42,
                  "priority": 0
                }
              ]
            }
          }
        ]
      }
    },
    "7965a": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Ethernet replay block",
        "description": "A replay block for the ethernet protocol.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "file-path"
        ],
        "properties": {
          "name": {
            "$ref": "#/definitions/038dc/full"
          },
          "when": {
            "$ref": "#/definitions/09e40/full"
          },
          "file-path": {
            "$ref": "#/definitions/79394/full"
          },
          "replay-on-measurement-start": {
            "description": "Replay starts with measurement start",
            "anyOf": [
              {
                "type": "boolean",
                "default": true
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ],
            "examples": [
              true,
              false,
              "${variable}"
            ]
          },
          "send-system-variables": {
            "description": "Send system variable values.",
            "anyOf": [
              {
                "type": "boolean",
                "default": true
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ],
            "examples": [
              true,
              false,
              "${variable}"
            ]
          },
          "start-timing-condition": {
            "$ref": "#/definitions/b8d33/full"
          },
          "channel-mapping": {
            "$ref": "#/definitions/300bd/full"
          }
        },
        "examples": [
          {
            "name": "ReplayBlock",
            "file-path": "MyLoggingFile.blf"
          },
          {
            "name": "ReplayBlock",
            "file-path": "MyLoggingFile.blf",
            "when": "SCENARIO_NAME == \"MyScenario\""
          },
          {
            "name": "ReplayBlock",
            "file-path": "MyLoggingFile.blf",
            "replay-on-measurement-start": true,
            "send-system-variables": false,
            "start-timing-condition": {
              "condition": "immediately"
            },
            "channel-mapping": {
              "default-mapping": "as-in-original"
            }
          }
        ]
      }
    },
    "4909e": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Scenario",
        "description": "A scenario with the option to define / override variables or defines",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "pattern": "^[a-zA-Z_][a-zA-Z0-9_]*$",
            "not": {
              "const": "Default"
            }
          },
          "variables": {
            "$ref": "#/definitions/f9fcb/full"
          },
          "defines": {
            "$ref": "#/definitions/f52d1/full"
          }
        },
        "examples": [
          {
            "name": "my_scenario_name"
          },
          {
            "name": "override_variables",
            "variables": [
              {
                "name": "three",
                "value": 3
              }
            ]
          },
          {
            "name": "override_defines",
            "defines": [
              "mydefine",
              "mydevine_with_value=42"
            ]
          }
        ]
      }
    },
    "619f7": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Absolute or relative path to a source file of an application model (can/cs/sln/py/vmodule). Relative path specifications are resolved relative to the defining configuration file.",
        "type": "string",
        "anyOf": [
          {
            "pattern": "^.*\\.[Cc][Ss]$"
          },
          {
            "pattern": "^.*\\.[Pp][Yy]$"
          },
          {
            "pattern": "^.*\\.[Ss][Ll][Nn]$"
          },
          {
            "pattern": "^.*\\.[Cc][Aa][Nn]$"
          },
          {
            "pattern": "^.*\\.[vV][mM][oO][dD][uU][lL][eE]$"
          },
          {
            "pattern": "^.*\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\}$"
          }
        ],
        "examples": [
          "my_dotnet.cs",
          "my_python.py",
          "my_visual_studio.sln",
          "my_caplfile.can",
          "my_module.vmodule",
          "${some_variable}"
        ]
      }
    },
    "4de3d": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Reference to external datasource files (.vcdl/.vcodm). Absolute or relative path. Relative path specifications are resolved relative to the defining configuration file.",
        "type": "string",
        "anyOf": [
          {
            "pattern": "^.*\\.[vV][cC][dD][lL]$"
          },
          {
            "pattern": "^.*\\.[vV][cC][oO][dD][mM]$"
          },
          {
            "pattern": "^.*\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\}$"
          }
        ],
        "examples": [
          "path/to/my.vcdl",
          "path/to/my.vcodm",
          "${path_in_variable}",
          "path/${name_in_variable}"
        ]
      }
    },
    "8af01": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Absolute or relative path to a source file of a functional mockup unit (.fmu). Relative path specifications are resolved relative to the defining configuration file.",
        "type": "string",
        "anyOf": [
          {
            "pattern": "^.*\\.[Ff][Mm][Uu]$"
          },
          {
            "pattern": "^.*\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\}$"
          }
        ],
        "examples": [
          "my_functional_mockup_unit.fmu",
          "Inputs/MyFmu.FMU",
          "${some_variable}"
        ]
      }
    },
    "568cc": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Absolute or relative path to a xcpcfg file. Relative path specifications are resolved relative to the configuration file.",
        "type": "string",
        "anyOf": [
          {
            "pattern": "^.*\\.[xX][cC][pP][cC][fF][gG]$"
          },
          {
            "pattern": "^.*\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\}$"
          }
        ],
        "examples": [
          "path/to/my.xcpcfg",
          "${path_in_variable}",
          "path/${name_in_variable}"
        ]
      }
    },
    "038dc": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "A C-identifier for this element (case sensitive)",
        "type": "string",
        "pattern": "^[a-zA-Z_][a-zA-Z0-9_]*$",
        "examples": [
          "myid",
          "THIS_IS_CASE_SENSITIVE",
          "__1_2_3_4_5__"
        ]
      }
    },
    "14a7c": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "List of network nodes represented by this application",
        "type": "array",
        "items": {
          "$ref": "#/definitions/d4ffb/full"
        },
        "examples": [
          [
            {
              "network": "my_can_network_1"
            }
          ],
          [
            {
              "network": "my_can_network_1",
              "lin-role": "master"
            },
            {
              "network": "my_can_network_1",
              "lin-role": [
                "master",
                "config-tester"
              ]
            },
            {
              "network": "my_can_network_1",
              "database-node": {
                "database": "mydatabase",
                "node": "mynode"
              }
            }
          ]
        ]
      }
    },
    "01ff2": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "A list of C-identifiers for referenced elements (case sensitive)",
        "type": "array",
        "items": {
          "$ref": "#/definitions/17e6a/full"
        },
        "examples": [
          [
            "myid"
          ],
          [
            "THIS_IS_CASE_SENSITIVE",
            "__1_2_3_4_5__"
          ],
          [
            "${id_in_variable}",
            "prefix_${infix_in_variable}_suffix"
          ]
        ]
      }
    },
    "0f9b3": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Define the mapping of application channels to an underlying layer",
        "anyOf": [
          {
            "$ref": "#/definitions/779cd/full"
          },
          {
            "const": "internal-simulator",
            "description": "Connect application channel to simulated network."
          },
          {
            "const": "external-sil-kit",
            "description": "Connect application channel to SIL Kit."
          }
        ],
        "default": "internal-simulator",
        "examples": [
          "internal-simulator",
          "external-sil-kit"
        ]
      }
    },
    "907df": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Address configuration for an TCP/IP stack.",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "mac-address": {
            "$ref": "#/definitions/04e4b/full"
          },
          "mtu": {
            "$ref": "#/definitions/06c1d/full"
          },
          "ipv4-settings": {
            "$ref": "#/definitions/952c9/full"
          },
          "ipv6-settings": {
            "$ref": "#/definitions/0cca7/full"
          },
          "vlans": {
            "$ref": "#/definitions/0b970/full"
          }
        },
        "examples": [
          {
            "mac-address": "02:84:cf:3b:be:01"
          },
          {
            "mtu": 1500,
            "ipv4-settings": {
              "address-configuration": "static",
              "addresses": [
                {
                  "address": "192.168.0.1",
                  "subnet-mask": "255.255.0.0"
                }
              ]
            },
            "ipv6-settings": {
              "address-configuration": "dhcp"
            },
            "vlans": [
              {
                "id": 42,
                "priority": 0
              }
            ]
          }
        ]
      }
    },
    "79394": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Absolute or relative path to a replay file. Relative path specifications are resolved relative to the configuration file.",
        "type": "string",
        "anyOf": [
          {
            "pattern": "^.*\\.[bB][lL][fF]$"
          },
          {
            "pattern": "^.*\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\}$"
          }
        ],
        "examples": [
          "path/to/my.blf",
          "${path_in_variable}",
          "path/${name_in_variable}"
        ]
      }
    },
    "300bd": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "Channel mapping",
        "description": "The channel mapping for a replay block.",
        "type": "object",
        "additionalProperties": false,
        "required": [],
        "properties": {
          "default-mapping": {
            "description": "The default mapping of a channel if it is not explicitly mapped.",
            "anyOf": [
              {
                "const": "as-in-original",
                "description": "The channel is mapped to itself if there is an active network."
              },
              {
                "const": "ignore-all",
                "description": "The channels are ignored by default."
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ]
          },
          "mappings": {
            "title": "Explicit mappings",
            "description": "The explicitly mapped channels. Overwrites the default mapping for the source.",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "title": "Map source channel",
                  "type": "object",
                  "description": "Mapping from application channel of the replay file to a target network.",
                  "additionalProperties": false,
                  "required": [
                    "source-channel",
                    "target-network"
                  ],
                  "properties": {
                    "source-channel": {
                      "description": "The source application channel from the replayed file.",
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 65535,
                          "default": 0
                        },
                        {
                          "$ref": "#/definitions/779cd/full"
                        }
                      ]
                    },
                    "target-network": {
                      "description": "The target network name.",
                      "anyOf": [
                        {
                          "$ref": "#/definitions/038dc/full"
                        },
                        {
                          "$ref": "#/definitions/779cd/full"
                        }
                      ]
                    }
                  }
                },
                {
                  "title": "Map source network",
                  "type": "object",
                  "description": "Mapping from a named source network of the replay file to a named target network.",
                  "additionalProperties": false,
                  "required": [
                    "source-network",
                    "target-network"
                  ],
                  "properties": {
                    "source-network": {
                      "description": "The source network name. Only works if the replay file was created by CANoe and contains the relevant metadata.",
                      "type": "string"
                    },
                    "target-network": {
                      "description": "The target network name.",
                      "anyOf": [
                        {
                          "$ref": "#/definitions/038dc/full"
                        },
                        {
                          "$ref": "#/definitions/779cd/full"
                        }
                      ]
                    }
                  }
                },
                {
                  "title": "Ignore source channel",
                  "type": "object",
                  "description": "Ignores an application channel of the replay file.",
                  "additionalProperties": false,
                  "required": [
                    "ignore-source-channel"
                  ],
                  "properties": {
                    "ignore-source-channel": {
                      "description": "The ignored source channel.",
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 65535,
                          "default": 0
                        },
                        {
                          "$ref": "#/definitions/779cd/full"
                        }
                      ]
                    }
                  }
                },
                {
                  "title": "Ignore source network",
                  "type": "object",
                  "description": "Ignores a named source network of the replay file.",
                  "additionalProperties": false,
                  "required": [
                    "ignore-source-network"
                  ],
                  "properties": {
                    "ignore-source-network": {
                      "description": "The ignored source network name. Only works if the replay file was created by CANoe and contains the relevant metadata.",
                      "type": "string"
                    }
                  }
                }
              ]
            }
          }
        },
        "examples": [
          {
            "default-mapping": "as-in-original"
          },
          {
            "default-mapping": "ignore-all",
            "mappings": [
              {
                "source-channel": 1,
                "target-network": "CAN1"
              }
            ]
          },
          {
            "default-mapping": "as-in-original",
            "mappings": [
              {
                "source-network": "CAN1",
                "target-network": "CAN2"
              }
            ]
          },
          {
            "default-mapping": "as-in-original",
            "mappings": [
              {
                "ignore-source-channel": 2
              },
              {
                "ignore-source-network": "CAN4"
              }
            ]
          }
        ]
      }
    },
    "6d6c1": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Activates TCP Routing",
        "anyOf": [
          {
            "type": "boolean"
          },
          {
            "$ref": "#/definitions/779cd/full"
          }
        ],
        "default": false
      }
    },
    "31725": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Timestamp Option for TCP (RFC1323).",
        "anyOf": [
          {
            "$ref": "#/definitions/779cd/full"
          },
          {
            "type": "boolean"
          }
        ],
        "default": true
      }
    },
    "17e6a": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "string",
        "anyOf": [
          {
            "pattern": "^[a-zA-Z_][a-zA-Z0-9_]*$"
          },
          {
            "pattern": "^([a-zA-Z_][a-zA-Z0-9_]*)?\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\}[a-zA-Z0-9_]*$"
          }
        ],
        "examples": [
          "myid",
          "THIS_IS_CASE_SENSITIVE",
          "__1_2_3_4_5__",
          "${id_in_variable}"
        ]
      }
    },
    "04e4b": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "MAC-Address of the current TcpIpStack. (Can't be a multicast address.)",
        "type": "string",
        "anyOf": [
          {
            "pattern": "[0-9a-fA-F][02468aceACE](:[0-9a-fA-F]{2}){5}"
          },
          {
            "$ref": "#/definitions/779cd/full"
          }
        ],
        "examples": [
          "02:84:cf:3b:be:01",
          "aa:bb:cc:dd:ee:ff",
          "AA:BB:CC:DD:EE:FF"
        ]
      }
    },
    "06c1d": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Maximum Transmission Unit.",
        "anyOf": [
          {
            "type": "integer",
            "minimum": 1,
            "maximum": 1500
          },
          {
            "$ref": "#/definitions/779cd/full"
          }
        ],
        "default": 1500
      }
    },
    "952c9": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Configurations for IPv4.",
        "anyOf": [
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "address-configuration"
            ],
            "properties": {
              "address-configuration": {
                "description": "Defines how the addresses are configured. Use 'static' to configure them manually with the 'addresses' property or use 'dhcp' for automatic configuration.",
                "examples": [
                  "dhcp",
                  "static",
                  "linked-local"
                ],
                "anyOf": [
                  {
                    "enum": [
                      "dhcp",
                      "linked-local"
                    ]
                  },
                  {
                    "$ref": "#/definitions/779cd/full"
                  }
                ]
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "address-configuration",
              "addresses"
            ],
            "properties": {
              "addresses": {
                "$ref": "#/definitions/91edd/full"
              },
              "address-configuration": {
                "description": "Defines how the addresses are configured. Use 'static' to configure them manually with the 'addresses' property or use 'dhcp' for automatic configuration.",
                "anyOf": [
                  {
                    "const": "static"
                  },
                  {
                    "$ref": "#/definitions/779cd/full"
                  }
                ],
                "examples": [
                  "dhcp",
                  "static",
                  "linked-local"
                ]
              }
            }
          }
        ],
        "examples": [
          {
            "address-configuration": "dhcp"
          },
          {
            "address-configuration": "static",
            "addresses": [
              {
                "address": "192.168.0.2",
                "subnet-mask": "255.255.255.0"
              },
              {
                "address": "192.168.0.3",
                "subnet-prefix-length": 24
              }
            ]
          }
        ]
      }
    },
    "0cca7": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Configurations for IPv6.",
        "anyOf": [
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "address-configuration"
            ],
            "properties": {
              "address-configuration": {
                "description": "Defines how the addresses are configured. Use 'static' to configure them manually with the 'addresses' property or use 'dhcp' for automatic configuration.",
                "examples": [
                  "dhcp",
                  "static"
                ],
                "anyOf": [
                  {
                    "enum": [
                      "dhcp",
                      "linked-local"
                    ]
                  },
                  {
                    "$ref": "#/definitions/779cd/full"
                  }
                ]
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "address-configuration",
              "addresses"
            ],
            "properties": {
              "addresses": {
                "$ref": "#/definitions/66666/full"
              },
              "address-configuration": {
                "description": "Defines how the addresses are configured. Use 'static' to configure them manually with the 'addresses' property or use 'dhcp' for automatic configuration.",
                "anyOf": [
                  {
                    "const": "static"
                  },
                  {
                    "$ref": "#/definitions/779cd/full"
                  }
                ],
                "examples": [
                  "dhcp",
                  "static"
                ]
              }
            }
          }
        ],
        "examples": [
          {
            "address-configuration": "dhcp"
          },
          {
            "address-configuration": "static",
            "addresses": [
              {
                "address": "1234::abce",
                "subnet-prefix-length": 42
              },
              {
                "address": "1234::abcf",
                "subnet-prefix-length": 24
              }
            ]
          }
        ]
      }
    },
    "local": {
      "one": {
        "type": "string",
        "pattern": "\\.([Yy][Aa]?[Mm][Ll]|[Jj][Ss][Oo][Nn])$"
      }
    },
    "full": {
      "$schema": "http://json-schema.org/draft-07/schema",
      "title": "Include files",
      "description": "Include a different file (similar to #include of the c preprocessor). The order of includes does not matter. Circular / multiple includes are resolved correctly.",
      "oneOf": [
        {
          "$ref": "#/$defs/85495/local/one"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/85495/local/one"
          }
        }
      ],
      "examples": [
        "my_include.yaml",
        [
          "my_include.yml",
          "my_other_include.json"
        ]
      ]
    }
  }
}
