diff --git a/src/api/json/catalog.json b/src/api/json/catalog.json index a16ef77ef4b..c574a3d6d5b 100644 --- a/src/api/json/catalog.json +++ b/src/api/json/catalog.json @@ -9200,9 +9200,10 @@ { "name": "Azure IoT Operations Wasm Graph Config", "description": "", - "url": "https://www.schemastore.org/aio-wasm-graph-config-1.0.0.json", + "url": "https://www.schemastore.org/aio-wasm-graph-config-1.1.0.json", "versions": { - "1.0.0": "https://www.schemastore.org/aio-wasm-graph-config-1.0.0.json" + "1.0.0": "https://www.schemastore.org/aio-wasm-graph-config-1.0.0.json", + "1.1.0": "https://www.schemastore.org/aio-wasm-graph-config-1.1.0.json" } }, { diff --git a/src/schema-validation.jsonc b/src/schema-validation.jsonc index dee15b72a95..226644a018a 100644 --- a/src/schema-validation.jsonc +++ b/src/schema-validation.jsonc @@ -706,6 +706,9 @@ "apibuilder.json": { "externalSchema": ["base-04.json"] }, + "aio-wasm-graph-config-1.1.0.json": { + "unknownFormat": ["uint32"] + }, "apollo-router-2.8.1.json": { "externalSchema": ["base.json"], "unknownFormat": ["uint", "uint32", "uint64"] diff --git a/src/schemas/json/aio-wasm-graph-config-1.1.0.json b/src/schemas/json/aio-wasm-graph-config-1.1.0.json new file mode 100644 index 00000000000..11ad6d627b1 --- /dev/null +++ b/src/schemas/json/aio-wasm-graph-config-1.1.0.json @@ -0,0 +1,245 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://www.schemastore.org/aio-wasm-graph-config-1.1.0.json", + "title": "Azure IoT Operations Wasm Graph Config", + "type": "object", + "required": ["connections", "metadata", "moduleRequirements", "operations"], + "properties": { + "connections": { + "type": "array", + "items": { + "$ref": "#/definitions/WasmGraphConfigConnection" + } + }, + "metadata": { + "$ref": "#/definitions/WasmGraphMetadata" + }, + "moduleConfigurations": { + "default": [], + "type": "array", + "items": { + "$ref": "#/definitions/ModuleConfiguration" + } + }, + "moduleRequirements": { + "$ref": "#/definitions/ModuleVersions" + }, + "operations": { + "type": "array", + "items": { + "$ref": "#/definitions/WasmGraphConfigModule" + } + }, + "schemas": { + "default": [], + "type": "array", + "items": { + "$ref": "#/definitions/SchemaConfiguration" + } + } + }, + "additionalProperties": false, + "definitions": { + "Arity": { + "oneOf": [ + { + "type": "integer", + "format": "uint32", + "minimum": 1 + }, + { + "const": "unbounded" + } + ], + "default": 1 + }, + "BranchOutputArm": { + "type": "string", + "enum": ["False", "True"] + }, + "ConfigParameters": { + "type": "object", + "required": ["name"], + "properties": { + "default": { + "type": ["string", "null"] + }, + "description": { + "type": ["string", "null"] + }, + "name": { + "type": "string" + }, + "required": { + "default": false, + "type": "boolean" + }, + "schema": { + "type": ["string", "null"] + } + } + }, + "ModuleConfiguration": { + "type": "object", + "required": ["name", "parameters"], + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ConfigParameters" + } + } + } + }, + "ModuleVersionFeature": { + "type": "object", + "required": ["name"], + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": ["string", "null"] + } + }, + "additionalProperties": false + }, + "ModuleVersions": { + "type": "object", + "required": ["apiVersion", "runtimeVersion"], + "properties": { + "apiVersion": { + "type": "string" + }, + "features": { + "type": ["array", "null"], + "items": { + "$ref": "#/definitions/ModuleVersionFeature" + } + }, + "runtimeVersion": { + "type": "string" + } + }, + "additionalProperties": false + }, + "SchemaConfiguration": { + "type": "object", + "required": ["format", "name", "schema"], + "properties": { + "format": { + "type": "string" + }, + "name": { + "type": "string" + }, + "schema": { + "type": "string" + } + } + }, + "WasmGraphConfigConnection": { + "type": "object", + "required": ["from", "to"], + "properties": { + "from": { + "$ref": "#/definitions/WasmGraphConfigConnectionFromPoint" + }, + "to": { + "$ref": "#/definitions/WasmGraphConfigConnectionToPoint" + } + }, + "additionalProperties": false + }, + "WasmGraphConfigConnectionFromPoint": { + "type": "object", + "required": ["name"], + "properties": { + "arm": { + "anyOf": [ + { + "$ref": "#/definitions/BranchOutputArm" + }, + { + "type": "null" + } + ] + }, + "name": { + "type": "string" + }, + "schemaName": { + "type": ["string", "null"] + } + }, + "additionalProperties": false + }, + "WasmGraphConfigConnectionOperator": { + "type": "string", + "enum": [ + "source", + "map", + "filter", + "branch", + "concatenate", + "accumulate", + "delay", + "sink" + ] + }, + "WasmGraphConfigConnectionToPoint": { + "type": "object", + "required": ["name"], + "properties": { + "name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "WasmGraphConfigModule": { + "type": "object", + "required": ["name", "operationType"], + "properties": { + "arity": { + "$ref": "#/definitions/Arity" + }, + "module": { + "type": ["string", "null"] + }, + "name": { + "type": "string" + }, + "operationType": { + "$ref": "#/definitions/WasmGraphConfigConnectionOperator" + } + }, + "additionalProperties": false + }, + "WasmGraphMetadata": { + "type": "object", + "required": ["$schema", "name", "version"], + "properties": { + "$schema": { + "type": "string" + }, + "description": { + "type": ["string", "null"] + }, + "name": { + "type": "string" + }, + "vendor": { + "type": ["string", "null"] + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false + } + } +}