{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "DiagramElementRegistry",
"type": "object",
"properties": {
"messages": {
"type": "object",
"additionalProperties": {
"$ref": "#/$defs/MessageRegistration"
}
},
"nodes": {
"type": "object",
"additionalProperties": {
"$ref": "#/$defs/NodeRegistration"
}
},
"schemas": {
"type": "object",
"additionalProperties": true
},
"sections": {
"type": "object",
"additionalProperties": {
"$ref": "#/$defs/SectionRegistration"
}
},
"trace_supported": {
"type": "boolean"
}
},
"required": [
"nodes",
"sections",
"trace_supported",
"messages",
"schemas"
],
"$defs": {
"ConfigExample": {
"type": "object",
"properties": {
"description": {
"description": "A description of what this config is for",
"type": "string"
},
"config": {
"description": "The value of the config"
}
},
"required": [
"description",
"config"
]
},
"MessageOperation": {
"type": "object",
"properties": {
"deserialize": {
"type": [
"object",
"null"
]
},
"fork_clone": {
"type": [
"object",
"null"
]
},
"fork_result": {
"type": [
"object",
"null"
]
},
"join": {
"type": [
"object",
"null"
]
},
"serialize": {
"type": [
"object",
"null"
]
},
"split": {
"type": [
"object",
"null"
]
},
"unzip": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
}
}
},
"MessageRegistration": {
"type": "object",
"properties": {
"operations": {
"$ref": "#/$defs/MessageOperation"
},
"schema": {
"anyOf": [
{
"$ref": "#/$defs/Schema"
},
{
"type": "null"
}
]
},
"type_name": {
"type": "string"
}
},
"required": [
"type_name",
"operations"
]
},
"NodeRegistration": {
"type": "object",
"properties": {
"description": {
"type": [
"string",
"null"
]
},
"config_schema": {
"$ref": "#/$defs/Schema"
},
"default_display_text": {
"description": "If the user does not specify a default display text, the node ID will\n be used here.",
"type": "string"
},
"example_configs": {
"type": "array",
"items": {
"$ref": "#/$defs/ConfigExample"
}
},
"request": {
"type": "string"
},
"response": {
"type": "string"
},
"streams": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"required": [
"default_display_text",
"request",
"response",
"streams",
"config_schema",
"example_configs"
]
},
"Schema": {
"type": [
"object",
"boolean"
]
},
"SectionBuffer": {
"type": "object",
"properties": {
"item_type": {
"type": [
"string",
"null"
]
}
}
},
"SectionInput": {
"type": "object",
"properties": {
"message_type": {
"type": "string"
}
},
"required": [
"message_type"
]
},
"SectionMetadata": {
"type": "object",
"properties": {
"buffers": {
"type": "object",
"additionalProperties": {
"$ref": "#/$defs/SectionBuffer"
}
},
"inputs": {
"type": "object",
"additionalProperties": {
"$ref": "#/$defs/SectionInput"
}
},
"outputs": {
"type": "object",
"additionalProperties": {
"$ref": "#/$defs/SectionOutput"
}
}
},
"required": [
"inputs",
"outputs",
"buffers"
]
},
"SectionOutput": {
"type": "object",
"properties": {
"message_type": {
"type": "string"
}
},
"required": [
"message_type"
]
},
"SectionRegistration": {
"type": "object",
"properties": {
"description": {
"type": [
"string",
"null"
]
},
"config_schema": {
"$ref": "#/$defs/Schema"
},
"default_display_text": {
"type": "string"
},
"example_configs": {
"type": "array",
"items": {
"$ref": "#/$defs/ConfigExample"
}
},
"metadata": {
"$ref": "#/$defs/SectionMetadata"
}
},
"required": [
"default_display_text",
"metadata",
"config_schema",
"example_configs"
]
}
}
}