{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/venvironment-yaml/versions/1.1.1.json",
  "title": "venvironment schema",
  "x-lintel": {
    "source": "https://www.schemastore.org/venvironment-schema-v1.1.1.json",
    "sourceSha256": "932e06ac9bbe17141aba456611203c0b8df7884db18bf4ec315700fc3ee17e02",
    "fileMatch": [
      "venvironment.yaml",
      "*.venvironment.yaml",
      "venvironment.yml",
      "*.venvironment.yml",
      "venvironment.json",
      "*.venvironment.json"
    ],
    "parsers": [
      "json",
      "yaml"
    ]
  },
  "type": "object",
  "$ref": "#/$defs/fdb66/full",
  "$defs": {
    "fdb66": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "venvironment schema",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "version"
        ],
        "properties": {
          "version": {
            "$ref": "#/definitions/29b8a/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"
          },
          "fdx": {
            "$ref": "#/definitions/e4b54/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"
          }
        }
      }
    },
    "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"
              ]
            }
          ]
        ]
      }
    },
    "e4b54": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "title": "FDX",
        "description": "FDX settings. Entry can be deactivated with when.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "transport-layer",
          "port"
        ],
        "properties": {
          "when": {
            "$ref": "#/definitions/09e40/full"
          },
          "transport-layer": {
            "description": "Protocol to be used as transport layer for the FDX protocol",
            "default": "udp/ipv4",
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "udp/ipv4",
                  "udp/ipv6",
                  "tcp/ipv4",
                  "tcp/ipv6"
                ]
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ]
          },
          "port": {
            "description": "Number of the UDP or TCP port to be used for the FDX protocol",
            "default": 2809,
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 65535
              },
              {
                "$ref": "#/definitions/779cd/full"
              }
            ]
          },
          "description-files": {
            "description": "List of XML files that describe which signals or variables are to be exchanged and the manner in which this is to occur (e.g., with regard to grouping). Each entry can be deactivated with when.",
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "file-path"
              ],
              "properties": {
                "when": {
                  "$ref": "#/definitions/09e40/full"
                },
                "file-path": {
                  "$ref": "#/definitions/42d39/full"
                }
              }
            }
          }
        },
        "examples": [
          {
            "transport-layer": "udp/ipv4",
            "port": 2809
          },
          {
            "transport-layer": "tcp/ipv6",
            "port": 5555,
            "description-files": [
              {
                "file-path": "path/to/first.xml"
              },
              {
                "file-path": "path/to/second.xml"
              }
            ]
          }
        ]
      }
    },
    "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"
        ]
      }
    },
    "29b8a": {
      "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.1",
        "type": "string",
        "examples": [
          "1.1.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"
        ]
      }
    },
    "42d39": {
      "full": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "description": "Absolute or relative path to a FDX description file. Relative path specifications are resolved relative to the configuration file.",
        "type": "string",
        "anyOf": [
          {
            "pattern": "^.*\\.[xX][mM][lL]$"
          },
          {
            "pattern": "^.*\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\}$"
          }
        ],
        "examples": [
          "path/to/myDescriptionFile.xml",
          "${path_in_variable}",
          "path/${name_in_variable}"
        ]
      }
    },
    "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"
        ]
      ]
    }
  }
}
