Exception: invalid-yaml: The provided yaml is not valid.
Stack: invalid-yaml: The provided yaml is not valid.
I've converted the streetlight example to json and am trying to run the bundler on it.
{
"asyncapi": "2.4.0",
"info": {
"title": "Streetlights Kafka API",
"version": "1.0.0",
"description": "The Smartylighting Streetlights API allows you to remotely manage the city lights.\n\n### Check out its awesome features:\n\n* Turn a specific streetlight on/off 🌃\n* Dim a specific streetlight 😎\n* Receive real-time information about environmental lighting conditions 📈\n",
"license": {
"name": "Apache 2.0",
"url": "https://www.apache.org/licenses/LICENSE-2.0"
}
},
"servers": {
"test": {
"url": "test.mykafkacluster.org:8092",
"protocol": "kafka-secure",
"description": "Test broker",
"security": [
{
"saslScram": []
}
]
}
},
"defaultContentType": "application/json",
"channels": {
"smartylighting.streetlights.1.0.event.{streetlightId}.lighting.measured": {
"description": "The topic on which measured values may be produced and consumed.",
"parameters": {
"streetlightId": {
"$ref": "#/components/parameters/streetlightId"
}
},
"publish": {
"summary": "Inform about environmental lighting conditions of a particular streetlight.",
"operationId": "receiveLightMeasurement",
"traits": [
{
"$ref": "#/components/operationTraits/kafka"
}
],
"message": {
"$ref": "#/components/messages/lightMeasured"
}
}
},
"smartylighting.streetlights.1.0.action.{streetlightId}.turn.on": {
"parameters": {
"streetlightId": {
"$ref": "#/components/parameters/streetlightId"
}
},
"subscribe": {
"operationId": "turnOn",
"traits": [
{
"$ref": "#/components/operationTraits/kafka"
}
],
"message": {
"$ref": "#/components/messages/turnOnOff"
}
}
},
"smartylighting.streetlights.1.0.action.{streetlightId}.turn.off": {
"parameters": {
"streetlightId": {
"$ref": "#/components/parameters/streetlightId"
}
},
"subscribe": {
"operationId": "turnOff",
"traits": [
{
"$ref": "#/components/operationTraits/kafka"
}
],
"message": {
"$ref": "#/components/messages/turnOnOff"
}
}
},
"smartylighting.streetlights.1.0.action.{streetlightId}.dim": {
"parameters": {
"streetlightId": {
"$ref": "#/components/parameters/streetlightId"
}
},
"subscribe": {
"operationId": "dimLight",
"traits": [
{
"$ref": "#/components/operationTraits/kafka"
}
],
"message": {
"$ref": "#/components/messages/dimLight"
}
}
}
},
"components": {
"messages": {
"lightMeasured": {
"name": "lightMeasured",
"title": "Light measured",
"summary": "Inform about environmental lighting conditions of a particular streetlight.",
"contentType": "application/json",
"traits": [
{
"$ref": "#/components/messageTraits/commonHeaders"
}
],
"payload": {
"$ref": "#/components/schemas/lightMeasuredPayload"
}
},
"turnOnOff": {
"name": "turnOnOff",
"title": "Turn on/off",
"summary": "Command a particular streetlight to turn the lights on or off.",
"traits": [
{
"$ref": "#/components/messageTraits/commonHeaders"
}
],
"payload": {
"$ref": "#/components/schemas/turnOnOffPayload"
}
},
"dimLight": {
"name": "dimLight",
"title": "Dim light",
"summary": "Command a particular streetlight to dim the lights.",
"traits": [
{
"$ref": "#/components/messageTraits/commonHeaders"
}
],
"payload": {
"$ref": "#/components/schemas/dimLightPayload"
}
}
},
"schemas": {
"lightMeasuredPayload": {
"type": "object",
"properties": {
"lumens": {
"type": "integer",
"minimum": 0,
"description": "Light intensity measured in lumens."
},
"sentAt": {
"$ref": "#/components/schemas/sentAt"
}
}
},
"turnOnOffPayload": {
"type": "object",
"properties": {
"command": {
"type": "string",
"enum": [
"on",
"off"
],
"description": "Whether to turn on or off the light."
},
"sentAt": {
"$ref": "#/components/schemas/sentAt"
}
}
},
"dimLightPayload": {
"type": "object",
"properties": {
"percentage": {
"type": "integer",
"description": "Percentage to which the light should be dimmed to.",
"minimum": 0,
"maximum": 100
},
"sentAt": {
"$ref": "#/components/schemas/sentAt"
}
}
},
"sentAt": {
"type": "string",
"format": "date-time",
"description": "Date and time when the message was sent."
}
},
"securitySchemes": {
"saslScram": {
"type": "scramSha256",
"description": "Provide your username and password for SASL/SCRAM authentication"
}
},
"parameters": {
"streetlightId": {
"description": "The ID of the streetlight.",
"schema": {
"type": "string"
}
}
},
"messageTraits": {
"commonHeaders": {
"headers": {
"type": "object",
"properties": {
"my-app-header": {
"type": "integer",
"minimum": 0,
"maximum": 100
}
}
}
}
},
"operationTraits": {
"kafka": {
"bindings": {
"kafka": {
"clientId": "my-app-id"
}
}
}
}
}
}
It should basically just return what i've passed in. I planned to introduce external references next but couldn't get past this step.
Exception: invalid-yaml: The provided yaml is not valid.
Stack: invalid-yaml: The provided yaml is not valid.
at exports.toJS (\node_modules\@asyncapi\bundler\lib\util.js:32:11)
at \node_modules\@asyncapi\bundler\lib\index.js:38:41
at Array.map (<anonymous>)
at bundle (\node_modules\@asyncapi\bundler\lib\index.js:38:29)
at Object.<anonymous> (\dist\asyncapi\index.js:58:54)
at Generator.next (<anonymous>)
at \dist\asyncapi\index.js:8:71
at new Promise (<anonymous>)
at __awaiter (\dist\asyncapi\index.js:4:12)
at Object.httpTrigger [as default] (\dist\asyncapi\index.js:55:12).