UNPKG

156 kBJavaScriptView Raw
1module.exports = {"component":{"title":"Component protocol","description":"Protocol for handling the component registry.","output":{"error":{"id":"output/error","description":"Error response to a command on component protocol","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["component"]},"command":{"enum":["error"]},"payload":{"required":["message"],"properties":{"message":{"type":"string","description":"Error message describing what went wrong"}}}}}]},"component":{"id":"output/component","description":"Transmit the metadata about a component instance.","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["component"]},"command":{"enum":["component"]},"payload":{"required":["name","subgraph","inPorts","outPorts"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"component name in format that can be used in graphs. Should contain the component library prefix.","example":"my-project/MyComponent"},"description":{"type":"string","description":"textual description on what the component does"},"icon":{"type":"string","description":"Visual icon for the component, matching icon names in <a href=\"http://fortawesome.github.io/Font-Awesome/icons/\">Font Awesome</a>"},"subgraph":{"type":"boolean","description":"boolean telling whether the component is a subgraph"},"inPorts":{"description":"list of input ports of the component","id":"port_definition","type":"array","items":{"type":"object","required":["id","type"],"additionalProperties":false,"properties":{"id":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"type":{"description":"port datatype","type":"string","example":"boolean"},"schema":{"type":"string","format":"uri","description":"Link to JSON schema for data on this port","example":"https://example.net/schemas/person.json"},"required":{"description":"whether the port needs to be connected for the component to work","type":"boolean","example":true},"addressable":{"type":"boolean","description":"whether the port is an ArrayPort","example":false},"description":{"type":"string","description":"textual description of the port"},"values":{"type":"array","description":"list of values accepted for the port"},"default":{"description":"default value for the port"}}}},"outPorts":{"description":"list of output ports of the component","id":"port_definition","type":"array","items":{"type":"object","required":["id","type"],"additionalProperties":false,"properties":{"id":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"type":{"description":"port datatype","type":"string","example":"boolean"},"schema":{"type":"string","format":"uri","description":"Link to JSON schema for data on this port","example":"https://example.net/schemas/person.json"},"required":{"description":"whether the port needs to be connected for the component to work","type":"boolean","example":true},"addressable":{"type":"boolean","description":"whether the port is an ArrayPort","example":false},"description":{"type":"string","description":"textual description of the port"},"values":{"type":"array","description":"list of values accepted for the port"},"default":{"description":"default value for the port"}}}}}}}}]},"componentsready":{"id":"output/componentsready","description":"Indication that a component listing has finished","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"enum":["component"],"type":"string","description":"type of protocol"},"command":{"enum":["componentsready"],"description":"command to be executed","example":"addnode"},"payload":{"type":"integer","description":"number of components transmitted in this batch","example":42},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},"source":{"id":"output/source","description":"Source code for a component. In cases where a runtime receives a `source` message, it should do whatever operations are needed for making that component available for graphs, including possible compilation.","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["component"]},"command":{"enum":["source"]},"payload":{"required":["name","language","code"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Name of the component. Must not contain library prefix","example":"MyComponent"},"language":{"type":"string","description":"The programming language used for the component code","example":"c++"},"library":{"type":"string","description":"Component library identifier","example":"components-common"},"code":{"type":"string","description":"Component source code"},"tests":{"type":"string","description":"unit tests for the component"}}}}}]}},"input":{"list":{"id":"input/list","description":"Request a list of currently available components. Will be responded with a set of `component` messages.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["component"]},"command":{"enum":["list"]},"payload":{"required":[]}}}]},"getsource":{"id":"input/getsource","description":"Request for the source code of a given component. Will be responded with a `source` message.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["component"]},"command":{"enum":["getsource"]},"payload":{"required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Name of the component to for which to get source code. Should contain the library prefix","example":"my-project/SomeComponent"}}}}}]},"source":{"id":"input/source","description":"Source code for a component. In cases where a runtime receives a `source` message, it should do whatever operations are needed for making that component available for graphs, including possible compilation.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["component"]},"command":{"enum":["source"]},"payload":{"required":["name","language","code"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Name of the component. Must not contain library prefix.","example":"SomeComponent"},"language":{"type":"string","description":"The programming language used for the component code","example":"c++"},"library":{"type":"string","description":"Component library identifier","example":"my-project"},"code":{"type":"string","description":"Component source code"},"tests":{"type":"string","description":"Unit tests for the component"}}}}}]}}},"graph":{"$schema":"http://json-schema.org/draft-04/schema#","title":"Graph protocol","description":"This protocol is utilized for communicating about graph changes in both directions.","messages":{"error":{"id":"messages/error","properties":{"protocol":{"enum":["graph"]},"command":{"enum":["error"]},"payload":{"required":["message"],"properties":{"message":{"type":"string","description":"Error message describing what went wrong"}}}}},"clear":{"id":"messages/clear","properties":{"protocol":{"enum":["graph"]},"command":{"enum":["clear"]},"payload":{"required":["id"],"additionalProperties":false,"properties":{"id":{"description":"identifier for the graph being created. Used for all subsequent messages related to the graph instance","id":"graph_id","type":"string"},"name":{"type":"string","description":"Human-readable label for the graph"},"library":{"type":"string","description":"Component library identifier"},"main":{"type":"boolean","description":"Identifies the graph as a main graph of a project that should not be registered as a component\nGraphs registered in this way should also be available for use as subgraphs in other graphs. Therefore a graph registration and later changes to it may cause component messages of the Component protocol to be sent back to the client informing of possible changes in the ports of the subgraph component."},"icon":{"type":"string","description":"Icon to use for the graph when used as a component"},"description":{"type":"string","description":"Description to use for the graph when used as a component"}}}}},"addnode":{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["addnode"]},"payload":{"required":["id","component","graph"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"identifier for the node"},"component":{"type":"string","description":"component name used for the node"},"metadata":{"description":"structure of key-value pairs for node metadata","id":"metadata_node","type":"object","additionalProperties":true,"required":[],"properties":{"x":{"type":"integer","description":"X coordinate of a graph entity"},"y":{"type":"integer","description":"Y coordinate of a graph entity"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}},"removenode":{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["removenode"]},"payload":{"required":["id","graph"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"identifier for the node"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}},"renamenode":{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["renamenode"]},"payload":{"required":["from","to","graph"],"additionalProperties":false,"properties":{"from":{"type":"string","description":"original identifier for the node"},"to":{"type":"string","description":"new identifier for the node"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}},"changenode":{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["changenode"]},"payload":{"required":["id","metadata","graph"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"identifier for the node"},"metadata":{"description":"structure of key-value pairs for node metadata","id":"metadata_node","type":"object","additionalProperties":true,"required":[],"properties":{"x":{"type":"integer","description":"X coordinate of a graph entity"},"y":{"type":"integer","description":"Y coordinate of a graph entity"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}},"addedge":{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["addedge"]},"payload":{"required":["src","tgt","graph"],"additionalProperties":false,"properties":{"src":{"description":"source node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"tgt":{"description":"target node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"metadata":{"description":"Structure of key-value pairs for edge metadata","id":"metadata_edge","type":"object","additionalProperties":true,"required":[],"properties":{"route":{"type":"integer","description":"Route identifier of a graph entity"},"schema":{"type":"string","format":"uri","description":"JSON schema associated with a graph entity"},"secure":{"type":"boolean","description":"Whether graph entity data should be treated as secure"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}},"removeedge":{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["removeedge"]},"payload":{"additionalProperties":false,"required":["graph","src","tgt"],"properties":{"src":{"description":"source node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"tgt":{"description":"target node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}},"changeedge":{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["changeedge"]},"payload":{"additionalProperties":false,"required":["graph","src","tgt"],"properties":{"metadata":{"description":"struct of key-value pairs for edge metadata","id":"metadata_edge","type":"object","additionalProperties":true,"required":[],"properties":{"route":{"type":"integer","description":"Route identifier of a graph entity"},"schema":{"type":"string","format":"uri","description":"JSON schema associated with a graph entity"},"secure":{"type":"boolean","description":"Whether graph entity data should be treated as secure"}}},"src":{"description":"source node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"tgt":{"description":"target node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}},"addinitial":{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["addinitial"]},"payload":{"additionalProperties":false,"required":["graph","src","tgt"],"properties":{"metadata":{"type":"object","description":"structure of key-value pairs for IIP metadata","id":"metadata_edge","additionalProperties":true,"required":[],"properties":{"route":{"type":"integer","description":"Route identifier of a graph entity"},"schema":{"type":"string","format":"uri","description":"JSON schema associated with a graph entity"},"secure":{"type":"boolean","description":"Whether graph entity data should be treated as secure"}}},"src":{"description":"source data for the edge","id":"iip","type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"description":"IIP value in its actual data type","type":["object","array","string","number","integer","boolean","null"]}}},"tgt":{"description":"target node/port for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}},"removeinitial":{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["removeinitial"]},"payload":{"required":["tgt","graph"],"additionalProperties":false,"properties":{"src":{"description":"IIP data","id":"iip","type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"description":"IIP value in its actual data type","type":["object","array","string","number","integer","boolean","null"]}}},"tgt":{"description":"target node/port for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}},"addinport":{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["addinport"]},"payload":{"additionalProperties":false,"required":["public","port","node","graph"],"properties":{"public":{"description":"the exported name of the port","id":"port_id","type":"string","example":"in"},"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"description":"internal port name in the graph","id":"port_id","type":"string","example":"in"},"metadata":{"description":"structure of key-value pairs for node metadata","id":"metadata_node","type":"object","additionalProperties":true,"required":[],"properties":{"x":{"type":"integer","description":"X coordinate of a graph entity"},"y":{"type":"integer","description":"Y coordinate of a graph entity"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}},"removeinport":{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["removeinport"]},"payload":{"required":["public","graph"],"additionalProperties":false,"properties":{"public":{"description":"the exported name of the port to remove","id":"port_id","type":"string","example":"in"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}},"renameinport":{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["renameinport"]},"payload":{"required":["from","to","graph"],"additionalProperties":false,"properties":{"from":{"description":"original exported port name","id":"port_id","type":"string","example":"in"},"to":{"description":"new exported port name","id":"port_id","type":"string","example":"in"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}},"addoutport":{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["addoutport"]},"payload":{"required":["public","node","port","graph"],"additionalProperties":false,"properties":{"public":{"description":"the exported name of the port","example":"out","id":"port_id","type":"string"},"node":{"description":"node identifier","id":"node_id","type":"string","example":"Repeat"},"port":{"description":"internal port name","example":"out[2]","id":"port_id","type":"string"},"metadata":{"description":"structure of key-value pairs for port metadata","id":"metadata_node","type":"object","additionalProperties":true,"required":[],"properties":{"x":{"type":"integer","description":"X coordinate of a graph entity"},"y":{"type":"integer","description":"Y coordinate of a graph entity"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}},"removeoutport":{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["removeoutport"]},"payload":{"required":["public","graph"],"additionalProperties":false,"properties":{"public":{"description":"the exported name of the port to remove","example":"out","id":"port_id","type":"string"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}},"renameoutport":{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["renameoutport"]},"payload":{"required":["from","to","graph"],"additionalProperties":false,"properties":{"from":{"description":"original exported port name","id":"port_id","type":"string","example":"in"},"to":{"description":"new exported port name","id":"port_id","type":"string","example":"in"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}},"addgroup":{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["addgroup"]},"payload":{"required":["name","nodes","graph"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"the group name"},"nodes":{"type":"array","description":"an array of node ids part of the group","items":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"}},"metadata":{"description":"structure of key-value pairs for group metadata","id":"metadata_group","type":"object","additionalProperties":true,"required":[],"properties":{"description":{"type":"string","description":"Longer textual description of the group"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}},"removegroup":{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["removegroup"]},"payload":{"required":["name","graph"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"the group name"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}},"renamegroup":{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["renamegroup"]},"payload":{"required":["from","to","graph"],"properties":{"from":{"type":"string","description":"original group name"},"to":{"type":"string","description":"new group name"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}},"changegroup":{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["changegroup"]},"payload":{"required":["name","metadata","graph"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"the group name"},"metadata":{"description":"structure of key-value pairs for group metadata","id":"metadata_group","type":"object","additionalProperties":true,"required":[],"properties":{"description":{"type":"string","description":"Longer textual description of the group"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}},"output":{"error":{"id":"output/error","description":"Error response to a command on graph protocol","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"id":"messages/error","properties":{"protocol":{"enum":["graph"]},"command":{"enum":["error"]},"payload":{"required":["message"],"properties":{"message":{"type":"string","description":"Error message describing what went wrong"}}}}}]},"clear":{"id":"output/clear","description":"An empty graph was initialized","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"id":"messages/clear","properties":{"protocol":{"enum":["graph"]},"command":{"enum":["clear"]},"payload":{"required":["id"],"additionalProperties":false,"properties":{"id":{"description":"identifier for the graph being created. Used for all subsequent messages related to the graph instance","id":"graph_id","type":"string"},"name":{"type":"string","description":"Human-readable label for the graph"},"library":{"type":"string","description":"Component library identifier"},"main":{"type":"boolean","description":"Identifies the graph as a main graph of a project that should not be registered as a component\nGraphs registered in this way should also be available for use as subgraphs in other graphs. Therefore a graph registration and later changes to it may cause component messages of the Component protocol to be sent back to the client informing of possible changes in the ports of the subgraph component."},"icon":{"type":"string","description":"Icon to use for the graph when used as a component"},"description":{"type":"string","description":"Description to use for the graph when used as a component"}}}}}]},"addnode":{"id":"output/addnode","description":"A node was added to a graph.","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["addnode"]},"payload":{"required":["id","component","graph"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"identifier for the node"},"component":{"type":"string","description":"component name used for the node"},"metadata":{"description":"structure of key-value pairs for node metadata","id":"metadata_node","type":"object","additionalProperties":true,"required":[],"properties":{"x":{"type":"integer","description":"X coordinate of a graph entity"},"y":{"type":"integer","description":"Y coordinate of a graph entity"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"removenode":{"id":"output/removenode","description":"A node was removed from a graph","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["removenode"]},"payload":{"required":["id","graph"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"identifier for the node"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"renamenode":{"id":"output/renamenode","description":"A node was renamed in a graph.","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["renamenode"]},"payload":{"required":["from","to","graph"],"additionalProperties":false,"properties":{"from":{"type":"string","description":"original identifier for the node"},"to":{"type":"string","description":"new identifier for the node"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"changenode":{"id":"output/changenode","description":"Metadata of a node was changed in a graph","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["changenode"]},"payload":{"required":["id","metadata","graph"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"identifier for the node"},"metadata":{"description":"structure of key-value pairs for node metadata","id":"metadata_node","type":"object","additionalProperties":true,"required":[],"properties":{"x":{"type":"integer","description":"X coordinate of a graph entity"},"y":{"type":"integer","description":"Y coordinate of a graph entity"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"addedge":{"id":"output/addedge","description":"An edge was added to a graph","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["addedge"]},"payload":{"required":["src","tgt","graph"],"additionalProperties":false,"properties":{"src":{"description":"source node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"tgt":{"description":"target node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"metadata":{"description":"Structure of key-value pairs for edge metadata","id":"metadata_edge","type":"object","additionalProperties":true,"required":[],"properties":{"route":{"type":"integer","description":"Route identifier of a graph entity"},"schema":{"type":"string","format":"uri","description":"JSON schema associated with a graph entity"},"secure":{"type":"boolean","description":"Whether graph entity data should be treated as secure"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"removeedge":{"id":"output/removeedge","description":"An edge was removed from a graph","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["removeedge"]},"payload":{"additionalProperties":false,"required":["graph","src","tgt"],"properties":{"src":{"description":"source node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"tgt":{"description":"target node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"changeedge":{"id":"output/changeedge","description":"Metadata of an edge was changed in a graph","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["changeedge"]},"payload":{"additionalProperties":false,"required":["graph","src","tgt"],"properties":{"metadata":{"description":"struct of key-value pairs for edge metadata","id":"metadata_edge","type":"object","additionalProperties":true,"required":[],"properties":{"route":{"type":"integer","description":"Route identifier of a graph entity"},"schema":{"type":"string","format":"uri","description":"JSON schema associated with a graph entity"},"secure":{"type":"boolean","description":"Whether graph entity data should be treated as secure"}}},"src":{"description":"source node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"tgt":{"description":"target node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"addinitial":{"id":"output/addinitial","description":"An IIP was added to a graph","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["addinitial"]},"payload":{"additionalProperties":false,"required":["graph","src","tgt"],"properties":{"metadata":{"type":"object","description":"structure of key-value pairs for IIP metadata","id":"metadata_edge","additionalProperties":true,"required":[],"properties":{"route":{"type":"integer","description":"Route identifier of a graph entity"},"schema":{"type":"string","format":"uri","description":"JSON schema associated with a graph entity"},"secure":{"type":"boolean","description":"Whether graph entity data should be treated as secure"}}},"src":{"description":"source data for the edge","id":"iip","type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"description":"IIP value in its actual data type","type":["object","array","string","number","integer","boolean","null"]}}},"tgt":{"description":"target node/port for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"removeinitial":{"id":"output/removeinitial","description":"An IIP was removed from a graph","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["removeinitial"]},"payload":{"required":["tgt","graph"],"additionalProperties":false,"properties":{"src":{"description":"IIP data","id":"iip","type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"description":"IIP value in its actual data type","type":["object","array","string","number","integer","boolean","null"]}}},"tgt":{"description":"target node/port for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"addinport":{"id":"output/addinport","description":"An exported inport was added to a graph","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["addinport"]},"payload":{"additionalProperties":false,"required":["public","port","node","graph"],"properties":{"public":{"description":"the exported name of the port","id":"port_id","type":"string","example":"in"},"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"description":"internal port name in the graph","id":"port_id","type":"string","example":"in"},"metadata":{"description":"structure of key-value pairs for node metadata","id":"metadata_node","type":"object","additionalProperties":true,"required":[],"properties":{"x":{"type":"integer","description":"X coordinate of a graph entity"},"y":{"type":"integer","description":"Y coordinate of a graph entity"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"removeinport":{"id":"output/removeinport","description":"An exported inport was removed from a graph","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["removeinport"]},"payload":{"required":["public","graph"],"additionalProperties":false,"properties":{"public":{"description":"the exported name of the port to remove","id":"port_id","type":"string","example":"in"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"renameinport":{"id":"output/renameinport","description":"An exported inport was renamed in a graph","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["renameinport"]},"payload":{"required":["from","to","graph"],"additionalProperties":false,"properties":{"from":{"description":"original exported port name","id":"port_id","type":"string","example":"in"},"to":{"description":"new exported port name","id":"port_id","type":"string","example":"in"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"addoutport":{"id":"output/addoutport","description":"An exported outport was added to a graph","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["addoutport"]},"payload":{"required":["public","node","port","graph"],"additionalProperties":false,"properties":{"public":{"description":"the exported name of the port","example":"out","id":"port_id","type":"string"},"node":{"description":"node identifier","id":"node_id","type":"string","example":"Repeat"},"port":{"description":"internal port name","example":"out[2]","id":"port_id","type":"string"},"metadata":{"description":"structure of key-value pairs for port metadata","id":"metadata_node","type":"object","additionalProperties":true,"required":[],"properties":{"x":{"type":"integer","description":"X coordinate of a graph entity"},"y":{"type":"integer","description":"Y coordinate of a graph entity"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"removeoutport":{"id":"output/removeoutport","description":"An exported outport was removed from a graph","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["removeoutport"]},"payload":{"required":["public","graph"],"additionalProperties":false,"properties":{"public":{"description":"the exported name of the port to remove","example":"out","id":"port_id","type":"string"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"renameoutport":{"id":"output/renameoutport","description":"An exported outport was renamed in a graph","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["renameoutport"]},"payload":{"required":["from","to","graph"],"additionalProperties":false,"properties":{"from":{"description":"original exported port name","id":"port_id","type":"string","example":"in"},"to":{"description":"new exported port name","id":"port_id","type":"string","example":"in"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"addgroup":{"id":"output/addgroup","description":"A group was added to a graph","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["addgroup"]},"payload":{"required":["name","nodes","graph"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"the group name"},"nodes":{"type":"array","description":"an array of node ids part of the group","items":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"}},"metadata":{"description":"structure of key-value pairs for group metadata","id":"metadata_group","type":"object","additionalProperties":true,"required":[],"properties":{"description":{"type":"string","description":"Longer textual description of the group"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"removegroup":{"id":"output/removegroup","description":"A group was removed from a graph","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["removegroup"]},"payload":{"required":["name","graph"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"the group name"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"renamegroup":{"id":"output/renamegroup","description":"A group was renamed in a graph","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["renamegroup"]},"payload":{"required":["from","to","graph"],"properties":{"from":{"type":"string","description":"original group name"},"to":{"type":"string","description":"new group name"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"changegroup":{"id":"output/changegroup","description":"Metadata of a group was changed in a graph","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["changegroup"]},"payload":{"required":["name","metadata","graph"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"the group name"},"metadata":{"description":"structure of key-value pairs for group metadata","id":"metadata_group","type":"object","additionalProperties":true,"required":[],"properties":{"description":{"type":"string","description":"Longer textual description of the group"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]}},"input":{"clear":{"id":"input/clear","description":"Initialize an empty graph.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"id":"messages/clear","properties":{"protocol":{"enum":["graph"]},"command":{"enum":["clear"]},"payload":{"required":["id"],"additionalProperties":false,"properties":{"id":{"description":"identifier for the graph being created. Used for all subsequent messages related to the graph instance","id":"graph_id","type":"string"},"name":{"type":"string","description":"Human-readable label for the graph"},"library":{"type":"string","description":"Component library identifier"},"main":{"type":"boolean","description":"Identifies the graph as a main graph of a project that should not be registered as a component\nGraphs registered in this way should also be available for use as subgraphs in other graphs. Therefore a graph registration and later changes to it may cause component messages of the Component protocol to be sent back to the client informing of possible changes in the ports of the subgraph component."},"icon":{"type":"string","description":"Icon to use for the graph when used as a component"},"description":{"type":"string","description":"Description to use for the graph when used as a component"}}}}}]},"addnode":{"id":"input/addnode","description":"Add node to a graph.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["addnode"]},"payload":{"required":["id","component","graph"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"identifier for the node"},"component":{"type":"string","description":"component name used for the node"},"metadata":{"description":"structure of key-value pairs for node metadata","id":"metadata_node","type":"object","additionalProperties":true,"required":[],"properties":{"x":{"type":"integer","description":"X coordinate of a graph entity"},"y":{"type":"integer","description":"Y coordinate of a graph entity"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"removenode":{"id":"input/removenode","description":"Remove a node from a graph.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["removenode"]},"payload":{"required":["id","graph"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"identifier for the node"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"renamenode":{"id":"input/renamenode","description":"Change the ID of a node in the graph","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["renamenode"]},"payload":{"required":["from","to","graph"],"additionalProperties":false,"properties":{"from":{"type":"string","description":"original identifier for the node"},"to":{"type":"string","description":"new identifier for the node"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"changenode":{"id":"input/changenode","description":"Change the metadata associated to a node in the graph","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["changenode"]},"payload":{"required":["id","metadata","graph"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"identifier for the node"},"metadata":{"description":"structure of key-value pairs for node metadata","id":"metadata_node","type":"object","additionalProperties":true,"required":[],"properties":{"x":{"type":"integer","description":"X coordinate of a graph entity"},"y":{"type":"integer","description":"Y coordinate of a graph entity"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"addedge":{"id":"input/addedge","description":"Add an edge to the graph","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["addedge"]},"payload":{"required":["src","tgt","graph"],"additionalProperties":false,"properties":{"src":{"description":"source node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"tgt":{"description":"target node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"metadata":{"description":"Structure of key-value pairs for edge metadata","id":"metadata_edge","type":"object","additionalProperties":true,"required":[],"properties":{"route":{"type":"integer","description":"Route identifier of a graph entity"},"schema":{"type":"string","format":"uri","description":"JSON schema associated with a graph entity"},"secure":{"type":"boolean","description":"Whether graph entity data should be treated as secure"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"removeedge":{"id":"input/removeedge","description":"Remove an edge from the graph","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["removeedge"]},"payload":{"additionalProperties":false,"required":["graph","src","tgt"],"properties":{"src":{"description":"source node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"tgt":{"description":"target node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"changeedge":{"id":"input/changeedge","description":"Change an edge's metadata","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["changeedge"]},"payload":{"additionalProperties":false,"required":["graph","src","tgt"],"properties":{"metadata":{"description":"struct of key-value pairs for edge metadata","id":"metadata_edge","type":"object","additionalProperties":true,"required":[],"properties":{"route":{"type":"integer","description":"Route identifier of a graph entity"},"schema":{"type":"string","format":"uri","description":"JSON schema associated with a graph entity"},"secure":{"type":"boolean","description":"Whether graph entity data should be treated as secure"}}},"src":{"description":"source node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"tgt":{"description":"target node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"addinitial":{"id":"input/addinitial","description":"Add an IIP to the graph","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["addinitial"]},"payload":{"additionalProperties":false,"required":["graph","src","tgt"],"properties":{"metadata":{"type":"object","description":"structure of key-value pairs for IIP metadata","id":"metadata_edge","additionalProperties":true,"required":[],"properties":{"route":{"type":"integer","description":"Route identifier of a graph entity"},"schema":{"type":"string","format":"uri","description":"JSON schema associated with a graph entity"},"secure":{"type":"boolean","description":"Whether graph entity data should be treated as secure"}}},"src":{"description":"source data for the edge","id":"iip","type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"description":"IIP value in its actual data type","type":["object","array","string","number","integer","boolean","null"]}}},"tgt":{"description":"target node/port for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"removeinitial":{"id":"input/removeinitial","description":"Remove an IIP from the graph","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["removeinitial"]},"payload":{"required":["tgt","graph"],"additionalProperties":false,"properties":{"src":{"description":"IIP data","id":"iip","type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"description":"IIP value in its actual data type","type":["object","array","string","number","integer","boolean","null"]}}},"tgt":{"description":"target node/port for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"addinport":{"id":"input/addinport","description":"Add an exported inport to the graph.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["addinport"]},"payload":{"additionalProperties":false,"required":["public","port","node","graph"],"properties":{"public":{"description":"the exported name of the port","id":"port_id","type":"string","example":"in"},"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"description":"internal port name in the graph","id":"port_id","type":"string","example":"in"},"metadata":{"description":"structure of key-value pairs for node metadata","id":"metadata_node","type":"object","additionalProperties":true,"required":[],"properties":{"x":{"type":"integer","description":"X coordinate of a graph entity"},"y":{"type":"integer","description":"Y coordinate of a graph entity"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"removeinport":{"id":"input/removeinport","description":"Remove an exported port from the graph","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["removeinport"]},"payload":{"required":["public","graph"],"additionalProperties":false,"properties":{"public":{"description":"the exported name of the port to remove","id":"port_id","type":"string","example":"in"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"renameinport":{"id":"input/renameinport","description":"Rename an exported port in the graph","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["renameinport"]},"payload":{"required":["from","to","graph"],"additionalProperties":false,"properties":{"from":{"description":"original exported port name","id":"port_id","type":"string","example":"in"},"to":{"description":"new exported port name","id":"port_id","type":"string","example":"in"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"addoutport":{"id":"input/addoutport","description":"Add an exported outport to the graph.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["addoutport"]},"payload":{"required":["public","node","port","graph"],"additionalProperties":false,"properties":{"public":{"description":"the exported name of the port","example":"out","id":"port_id","type":"string"},"node":{"description":"node identifier","id":"node_id","type":"string","example":"Repeat"},"port":{"description":"internal port name","example":"out[2]","id":"port_id","type":"string"},"metadata":{"description":"structure of key-value pairs for port metadata","id":"metadata_node","type":"object","additionalProperties":true,"required":[],"properties":{"x":{"type":"integer","description":"X coordinate of a graph entity"},"y":{"type":"integer","description":"Y coordinate of a graph entity"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"removeoutport":{"id":"input/removeoutport","description":"Remove an exported port from the graph","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["removeoutport"]},"payload":{"required":["public","graph"],"additionalProperties":false,"properties":{"public":{"description":"the exported name of the port to remove","example":"out","id":"port_id","type":"string"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"renameoutport":{"id":"input/renameoutport","description":"Rename an exported port in the graph","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["renameoutport"]},"payload":{"required":["from","to","graph"],"additionalProperties":false,"properties":{"from":{"description":"original exported port name","id":"port_id","type":"string","example":"in"},"to":{"description":"new exported port name","id":"port_id","type":"string","example":"in"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"addgroup":{"id":"input/addgroup","description":"Add a group to the graph","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["addgroup"]},"payload":{"required":["name","nodes","graph"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"the group name"},"nodes":{"type":"array","description":"an array of node ids part of the group","items":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"}},"metadata":{"description":"structure of key-value pairs for group metadata","id":"metadata_group","type":"object","additionalProperties":true,"required":[],"properties":{"description":{"type":"string","description":"Longer textual description of the group"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"removegroup":{"id":"input/removegroup","description":"Remove a group from the graph","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["removegroup"]},"payload":{"required":["name","graph"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"the group name"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"renamegroup":{"id":"input/renamegroup","description":"Rename a group in the graph.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["renamegroup"]},"payload":{"required":["from","to","graph"],"properties":{"from":{"type":"string","description":"original group name"},"to":{"type":"string","description":"new group name"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"changegroup":{"id":"input/changegroup","description":"Change a group's metadata","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["graph"]},"command":{"enum":["changegroup"]},"payload":{"required":["name","metadata","graph"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"the group name"},"metadata":{"description":"structure of key-value pairs for group metadata","id":"metadata_group","type":"object","additionalProperties":true,"required":[],"properties":{"description":{"type":"string","description":"Longer textual description of the group"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]}}},"network":{"$schema":"http://json-schema.org/draft-04/schema#","title":"Network protocol","description":"Protocol for starting and stopping FBP networks, and finding out about their state.","output":{"stopped":{"id":"output/stopped","description":"Inform that a given network has stopped.","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["network"]},"command":{"enum":["stopped"]},"payload":{"required":["graph"],"additionalProperties":false,"properties":{"time":{"type":"string","format":"date-time","description":"time when the network was stopped"},"uptime":{"type":"number","description":"time the network was running, in seconds"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"},"running":{"type":"boolean","description":"whether or not network is currently running"},"started":{"type":"boolean","description":"whether or not network has been started"},"debug":{"type":"boolean","description":"whether or not network is in debug mode"}}}}}]},"started":{"id":"output/started","description":"Inform that a given network has been started.","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["network"]},"command":{"enum":["started"]},"payload":{"required":["graph"],"additionalProperties":false,"properties":{"time":{"type":"string","format":"date-time","description":"time when the network was started"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"},"started":{"type":"boolean","description":"whether or not network has started running"},"running":{"type":"boolean","description":"whether or not network is currently running"},"debug":{"type":"boolean","description":"whether or not network is in debug mode"}}}}}]},"status":{"id":"output/status","description":"Response to a getstatus message.","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["network"]},"command":{"enum":["status"]},"payload":{"required":["running","graph"],"additionalProperties":false,"properties":{"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"},"uptime":{"type":"number","description":"time the network has been running, in seconds"},"started":{"type":"boolean","description":"whether or not network has started running"},"running":{"type":"boolean","description":"boolean tells whether the network is running or not"},"debug":{"type":"boolean","description":"whether or not network is in debug mode"}}}}}]},"output":{"id":"output/output","description":"An output message from a running network, roughly similar to STDOUT output of a Unix process, or a line of console.log in JavaScript. Output can also be used for passing images from the runtime to the UI.'","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["network"]},"command":{"enum":["output"]},"payload":{"required":["message"],"additionalProperties":false,"properties":{"message":{"type":"string","description":"contents of the output line"},"type":{"type":"string","enum":["message","previewurl"],"description":"type of output, either message or previewurl"},"url":{"type":"string","format":"uri","description":"URL for an image generated by the runtime"}}}}}]},"error":{"id":"output/error","description":"An error from a running network, roughly similar to STDERR output of a Unix process, or a line of console.error in JavaScript.'","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["network"]},"command":{"enum":["error"]},"payload":{"required":["message"],"additionalProperties":false,"properties":{"message":{"description":"contents of the error message","type":"string"},"stack":{"description":"stack trace","type":"string"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"processerror":{"id":"output/processerror","description":"When in debug mode, a network can signal an error happening inside a process.","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["network"]},"command":{"enum":["processerror"]},"payload":{"required":["id","error","graph"],"additionalProperties":false,"properties":{"id":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"error":{"type":"string","description":"error from the component"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"icon":{"id":"output/icon","description":"Icon of a component instance has changed.","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["network"]},"command":{"enum":["icon"]},"payload":{"required":["id","icon","graph"],"additionalProperties":false,"properties":{"id":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"icon":{"type":"string","description":"new icon for the component instance"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"connect":{"id":"output/connect","description":"Beginning of transmission on an edge.","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["network"]},"command":{"enum":["connect"]},"payload":{"additionalProperties":false,"id":"network_event","required":["id","tgt","graph"],"properties":{"id":{"type":"string","description":"textual edge identifier, usually in form of a FBP language line"},"src":{"description":"source node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"tgt":{"description":"target node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"},"subgraph":{"type":"array","description":"Subgraph identifier for the event. An array of node IDs.","items":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"}}}}}}]},"begingroup":{"id":"output/begingroup","description":"Beginning of a group (bracket IP) on an edge.","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["network"]},"command":{"enum":["begingroup"]},"payload":{"allOf":[{"id":"network_event","required":["id","tgt","graph"],"properties":{"id":{"type":"string","description":"textual edge identifier, usually in form of a FBP language line"},"src":{"description":"source node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"tgt":{"description":"target node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"},"subgraph":{"type":"array","description":"Subgraph identifier for the event. An array of node IDs.","items":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"}}}},{"required":["group"],"properties":{"group":{"description":"group name","type":"string"}}},{"additionalProperties":false,"properties":{"group":true,"id":true,"tgt":true,"src":true,"graph":true,"subgraph":true}}]}}}]},"data":{"id":"output/data","description":"Data transmission on an edge.","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["network"]},"command":{"enum":["data"]},"payload":{"allOf":[{"id":"network_event","required":["id","tgt","graph"],"properties":{"id":{"type":"string","description":"textual edge identifier, usually in form of a FBP language line"},"src":{"description":"source node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"tgt":{"description":"target node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"},"subgraph":{"type":"array","description":"Subgraph identifier for the event. An array of node IDs.","items":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"}}}},{"required":["data"],"properties":{"data":{"description":"actual data being transmitted, encoded in a way that can be carried over the protocol transport"},"type":{"type":"string","description":"The basic datatype sent","example":"array"},"schema":{"type":"string","format":"uri","description":"Link to JSON schema describing the format of the data","example":"https://example.net/schemas/person.json"}}},{"additionalProperties":false,"properties":{"data":true,"id":true,"src":true,"tgt":true,"graph":true,"subgraph":true}}]}}}]},"endgroup":{"id":"output/endgroup","description":"Ending of a group (bracket IP) on an edge.","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["network"]},"command":{"enum":["endgroup"]},"payload":{"allOf":[{"id":"network_event","required":["id","tgt","graph"],"properties":{"id":{"type":"string","description":"textual edge identifier, usually in form of a FBP language line"},"src":{"description":"source node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"tgt":{"description":"target node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"},"subgraph":{"type":"array","description":"Subgraph identifier for the event. An array of node IDs.","items":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"}}}},{"required":["group"],"properties":{"group":{"description":"group name","type":"string"}}},{"additionalProperties":false,"properties":{"group":true,"id":true,"src":true,"tgt":true,"graph":true,"subgraph":true}}]}}}]},"disconnect":{"id":"output/disconnect","description":"End of transmission on an edge.","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["network"]},"command":{"enum":["disconnect"]},"payload":{"additionalProperties":false,"id":"network_event","required":["id","tgt","graph"],"properties":{"id":{"type":"string","description":"textual edge identifier, usually in form of a FBP language line"},"src":{"description":"source node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"tgt":{"description":"target node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"},"subgraph":{"type":"array","description":"Subgraph identifier for the event. An array of node IDs.","items":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"}}}}}}]},"edges":{"id":"output/edges","description":"List of edges user has selected for inspection in a user interface or debugger, sent from runtime to UI.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["network"]},"command":{"enum":["edges"]},"payload":{"required":["graph","edges"],"additionalProperties":false,"properties":{"edges":{"type":"array","description":"list of selected edges","items":{"type":"object","required":["src","tgt"],"additionalProperties":false,"properties":{"src":{"description":"source node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"tgt":{"description":"target node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}}}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]}},"input":{"start":{"id":"input/start","description":"Start execution of a FBP network based on a given graph.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["network"]},"command":{"enum":["start"]},"payload":{"required":["graph"],"additionalProperties":false,"properties":{"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"getstatus":{"id":"input/getstatus","description":"Get the current status of the runtime. The runtime should respond with a status message.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["network"]},"command":{"enum":["getstatus"]},"payload":{"required":["graph"],"additionalProperties":false,"properties":{"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"stop":{"id":"input/stop","description":"Stop execution of a FBP network based on a given graph.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["network"]},"command":{"enum":["stop"]},"payload":{"required":["graph"],"additionalProperties":false,"properties":{"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"persist":{"id":"input/persist","description":"Tells the runtime to persist the current state of graphs and components so that they are available between restarts. Requires the network:persist capability.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["network"]},"command":{"enum":["persist"]},"payload":{"required":[],"additionalProperties":false,"properties":null}}}]},"debug":{"id":"input/debug","description":"Set a network into debug mode","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["network"]},"command":{"enum":["debug"]},"payload":{"additionalProperties":false,"required":["enable","graph"],"properties":{"enable":{"description":"tells whether to put the network in debug mode","type":"boolean"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"edges":{"id":"input/edges","description":"List of edges user has selected for inspection in a user interface or debugger, sent from UI to a runtime.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["network"]},"command":{"enum":["edges"]},"payload":{"required":["graph","edges"],"additionalProperties":false,"properties":{"edges":{"type":"array","description":"list of selected edges","items":{"type":"object","required":["src","tgt"],"additionalProperties":false,"properties":{"src":{"description":"source node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"tgt":{"description":"target node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}}}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]}}},"runtime":{"title":"Runtime protocol","description":"When a client connects to a FBP procotol it may choose to discover the capabilities and other information about the runtime.","input":{"getruntime":{"id":"input/getruntime","description":"Request the information about the runtime. When receiving this message the runtime should response with a runtime message. If the runtime is currently running a graph and it is able to speak the full Runtime protocol, it should follow up with a ports message.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["runtime"]},"command":{"enum":["getruntime"]},"payload":{"required":[],"properties":{"secret":{"type":"string","description":"access token to authorize the client. Provided also in payload for compatibility with older runtimes"}}}}}]},"packet":{"id":"input/packet","description":"Runtimes that can be used as remote subgraphs (i.e. ones that have reported supporting the protocol:runtime capability) need to be able to receive and transmit information packets at their exposed ports.\nThese packets can be send from the client to the runtimes input ports, or from runtimes output ports to the client.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["runtime"]},"command":{"enum":["packet"]},"payload":{"required":["port","event","graph"],"additionalProperties":false,"properties":{"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"event":{"type":"string","enum":["connect","begingroup","data","endgroup","disconnect"],"description":"packet event"},"type":{"type":"string","description":"The basic datatype sent","example":"array"},"schema":{"type":"string","format":"uri","description":"Link to JSON schema describing the format of the data","example":"https://example.net/schemas/person.json"},"payload":{"description":"payload for the packet. Used only with begingroup (for group names) and data packets"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]}},"output":{"error":{"id":"output/error","description":"Error response to a command on runtime protocol","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["runtime"]},"command":{"enum":["error"]},"payload":{"required":["message"],"properties":{"message":{"type":"string","description":"Error message describing what went wrong"}}}}}]},"ports":{"id":"output/ports","description":"Message sent by the runtime to signal its available ports. The runtime is responsible for sending the up-to-date list of available ports back to client whenever it changes.","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["runtime"]},"command":{"enum":["ports"]},"payload":{"required":["graph","inPorts","outPorts"],"additionalProperties":false,"properties":{"inPorts":{"description":"list of input ports of the runtime","id":"port_definition","type":"array","items":{"type":"object","required":["id","type"],"additionalProperties":false,"properties":{"id":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"type":{"description":"port datatype","type":"string","example":"boolean"},"schema":{"type":"string","format":"uri","description":"Link to JSON schema for data on this port","example":"https://example.net/schemas/person.json"},"required":{"description":"whether the port needs to be connected for the component to work","type":"boolean","example":true},"addressable":{"type":"boolean","description":"whether the port is an ArrayPort","example":false},"description":{"type":"string","description":"textual description of the port"},"values":{"type":"array","description":"list of values accepted for the port"},"default":{"description":"default value for the port"}}}},"outPorts":{"description":"list of output ports of the runtime","id":"port_definition","type":"array","items":{"type":"object","required":["id","type"],"additionalProperties":false,"properties":{"id":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"type":{"description":"port datatype","type":"string","example":"boolean"},"schema":{"type":"string","format":"uri","description":"Link to JSON schema for data on this port","example":"https://example.net/schemas/person.json"},"required":{"description":"whether the port needs to be connected for the component to work","type":"boolean","example":true},"addressable":{"type":"boolean","description":"whether the port is an ArrayPort","example":false},"description":{"type":"string","description":"textual description of the port"},"values":{"type":"array","description":"list of values accepted for the port"},"default":{"description":"default value for the port"}}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"runtime":{"id":"output/runtime","description":"Response from the runtime to the getruntime request.","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["runtime"]},"command":{"enum":["runtime"]},"payload":{"required":["version","capabilities","type"],"additionalProperties":false,"properties":{"id":{"type":"string","description":"unique runtime ID. Must be a UUID, version 4","example":"f18a4924-9d4f-414d-a37c-cd24b39bba10"},"label":{"description":"Human-readable description of the runtime","type":"string"},"version":{"description":"version of the runtime protocol that the runtime supports","type":"string","example":"0.6"},"allCapabilities":{"description":"<a href='#capabilities'>capability strings</a> for things the runtime is able to do. May include things not permitted for this client.","id":"capabilities","type":"array","items":{"type":"string","enums":["protocol:network","network:persist","network:status","network:data","network:control","protocol:component","component:getsource","component:setsource","protocol:runtime","protocol:graph","graph:readonly","protocol:trace"],"_enumDescriptions":[{"name":"protocol:network","description":"can control and introspect its running networks using the Network protocol. DEPRECATED. Instead the individual network:... capabilities should be used. Implies capabilities network:status, network:data, network:control. Does not imply capability network:persist.","inputs":["network:start","network:getstatus","network:stop","network:debug","network:edges"],"outputs":["network:stopped","network:started","network:status","network:output","network:error","network:processerror","network:icon","network:connect","network:begingroup","network:data","network:endgroup","network:disconnect","network:edges"]},{"name":"network:persist","description":"can *flash* a running graph setup to the runtime, making it persistent across restarts","inputs":["network:persist"],"outputs":["network:persist","network:error"]},{"name":"network:status","description":"can get and follow changes to network status","inputs":["network:getstatus"],"outputs":["network:status","network:started","network:stopped","network:error"]},{"name":"network:data","description":"can listen to data flowing through the network and processes","inputs":["network:edges"],"outputs":["network:edges","network:output","network:error","network:data","network:begingroup","network:endgroup","network:connect","network:disconnect","network:icon","network:processerror","network:error"]},{"name":"network:control","description":"can start and stop networks","inputs":["network:start","network:stop","network:getstatus","network:debug"],"outputs":["network:started","network:stopped","network:status","network:error"]},{"name":"protocol:component","description":"can list components of the runtime using the component:list message.","inputs":["component:list"],"outputs":["component:component","component:componentsready","component:error"]},{"name":"component:getsource","description":"read and send component source code back to client","inputs":["component:getsource"],"outputs":["component:source","component:error"]},{"name":"component:setsource","description":"runtime is able to compile and run custom components sent as source code strings","inputs":["component:source"],"outputs":["component:component","component:error"]},{"name":"protocol:runtime","description":"can expose ports of main graph and transmit packet information to/from them","inputs":["runtime:packet"],"outputs":["runtime:ports","runtime:packetsent","runtime:packet","runtime:error"]},{"name":"graph:readonly","description":"read and follow changes to runtime graphs (but not modify)","inputs":[],"outputs":["graph:clear","graph:addnode","graph:removenode","graph:renamenode","graph:changenode","graph:addedge","graph:removeedge","graph:changeedge","graph:addinitial","graph:removeinitial","graph:addinport","graph:removeinport","graph:renameinport","graph:addoutport","graph:removeoutport","graph:renameoutport","graph:addgroup","graph:removegroup","graph:renamegroup","graph:changegroup"]},{"name":"protocol:graph","description":"read & modify runtime graphs using the Graph protocol.","inputs":["graph:clear","graph:addnode","graph:removenode","graph:renamenode","graph:changenode","graph:addedge","graph:removeedge","graph:changeedge","graph:addinitial","graph:removeinitial","graph:addinport","graph:removeinport","graph:renameinport","graph:addoutport","graph:removeoutport","graph:renameoutport","graph:addgroup","graph:removegroup","graph:renamegroup","graph:changegroup"],"outputs":["graph:clear","graph:addnode","graph:removenode","graph:renamenode","graph:changenode","graph:addedge","graph:removeedge","graph:changeedge","graph:addinitial","graph:removeinitial","graph:addinport","graph:removeinport","graph:renameinport","graph:addoutport","graph:removeoutport","graph:renameoutport","graph:addgroup","graph:removegroup","graph:renamegroup","graph:changegroup","graph:error"]},{"name":"protocol:trace","description":"runtime is able to record and send over flowtraces, used for retroactive debugging.","inputs":["trace:start","trace:stop","trace:clear","trace:dump"],"outputs":["trace:start","trace:stop","trace:clear","trace:dump","trace:error"]}]}},"capabilities":{"description":"<a href='#capabilities'>capability strings</a> for things the runtime is able to do for this client.","id":"capabilities","type":"array","items":{"type":"string","enums":["protocol:network","network:persist","network:status","network:data","network:control","protocol:component","component:getsource","component:setsource","protocol:runtime","protocol:graph","graph:readonly","protocol:trace"],"_enumDescriptions":[{"name":"protocol:network","description":"can control and introspect its running networks using the Network protocol. DEPRECATED. Instead the individual network:... capabilities should be used. Implies capabilities network:status, network:data, network:control. Does not imply capability network:persist.","inputs":["network:start","network:getstatus","network:stop","network:debug","network:edges"],"outputs":["network:stopped","network:started","network:status","network:output","network:error","network:processerror","network:icon","network:connect","network:begingroup","network:data","network:endgroup","network:disconnect","network:edges"]},{"name":"network:persist","description":"can *flash* a running graph setup to the runtime, making it persistent across restarts","inputs":["network:persist"],"outputs":["network:persist","network:error"]},{"name":"network:status","description":"can get and follow changes to network status","inputs":["network:getstatus"],"outputs":["network:status","network:started","network:stopped","network:error"]},{"name":"network:data","description":"can listen to data flowing through the network and processes","inputs":["network:edges"],"outputs":["network:edges","network:output","network:error","network:data","network:begingroup","network:endgroup","network:connect","network:disconnect","network:icon","network:processerror","network:error"]},{"name":"network:control","description":"can start and stop networks","inputs":["network:start","network:stop","network:getstatus","network:debug"],"outputs":["network:started","network:stopped","network:status","network:error"]},{"name":"protocol:component","description":"can list components of the runtime using the component:list message.","inputs":["component:list"],"outputs":["component:component","component:componentsready","component:error"]},{"name":"component:getsource","description":"read and send component source code back to client","inputs":["component:getsource"],"outputs":["component:source","component:error"]},{"name":"component:setsource","description":"runtime is able to compile and run custom components sent as source code strings","inputs":["component:source"],"outputs":["component:component","component:error"]},{"name":"protocol:runtime","description":"can expose ports of main graph and transmit packet information to/from them","inputs":["runtime:packet"],"outputs":["runtime:ports","runtime:packetsent","runtime:packet","runtime:error"]},{"name":"graph:readonly","description":"read and follow changes to runtime graphs (but not modify)","inputs":[],"outputs":["graph:clear","graph:addnode","graph:removenode","graph:renamenode","graph:changenode","graph:addedge","graph:removeedge","graph:changeedge","graph:addinitial","graph:removeinitial","graph:addinport","graph:removeinport","graph:renameinport","graph:addoutport","graph:removeoutport","graph:renameoutport","graph:addgroup","graph:removegroup","graph:renamegroup","graph:changegroup"]},{"name":"protocol:graph","description":"read & modify runtime graphs using the Graph protocol.","inputs":["graph:clear","graph:addnode","graph:removenode","graph:renamenode","graph:changenode","graph:addedge","graph:removeedge","graph:changeedge","graph:addinitial","graph:removeinitial","graph:addinport","graph:removeinport","graph:renameinport","graph:addoutport","graph:removeoutport","graph:renameoutport","graph:addgroup","graph:removegroup","graph:renamegroup","graph:changegroup"],"outputs":["graph:clear","graph:addnode","graph:removenode","graph:renamenode","graph:changenode","graph:addedge","graph:removeedge","graph:changeedge","graph:addinitial","graph:removeinitial","graph:addinport","graph:removeinport","graph:renameinport","graph:addoutport","graph:removeoutport","graph:renameoutport","graph:addgroup","graph:removegroup","graph:renamegroup","graph:changegroup","graph:error"]},{"name":"protocol:trace","description":"runtime is able to record and send over flowtraces, used for retroactive debugging.","inputs":["trace:start","trace:stop","trace:clear","trace:dump"],"outputs":["trace:start","trace:stop","trace:clear","trace:dump","trace:error"]}]}},"graph":{"description":"ID of the currently configured main graph running on the runtime, if any","type":"string","example":"service-main","id":"graph_id"},"type":{"description":"type of the runtime","type":"string","example":"microflo"},"namespace":{"description":"Library namespace of the project running on the runtime, if any. Must match that of components belonging to the (top-level) of project.","type":"string","example":"my-project-foo"},"repository":{"description":"Source-code repository URL of the project running on the runtime, if any","type":"string","example":"https://github.com/flowbased/fbp-protocol.git"},"repositoryVersion":{"description":"Unique version identifier of the source code of the project, if known. The version should be available in @repository.","type":"string","example":"0.6.3-8-g90edcfc"}}}}}]},"packetsent":{"id":"output/packetsent","description":"Confirmation that a packet has been sent","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["runtime"]},"command":{"enum":["packetsent"]},"payload":{"required":["port","event","graph"],"additionalProperties":false,"properties":{"port":{"description":"port name for the input port","id":"port_id","type":"string","example":"in"},"event":{"type":"string","enum":["connect","begingroup","data","endgroup","disconnect"],"description":"packet event"},"type":{"type":"string","description":"The basic datatype sent","example":"array"},"schema":{"type":"string","format":"uri","description":"Link to JSON schema describing the format of the data","example":"https://example.net/schemas/person.json"},"payload":{"description":"payload for the packet. Used only with begingroup (for group names) and data packets"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"packet":{"id":"output/packet","description":"Runtimes that can be used as remote subgraphs (i.e. ones that have reported supporting the protocol:runtime capability) need to be able to receive and transmit information packets at their exposed ports.\nThese packets can be send from the client to the runtimes input ports, or from runtimes output ports to the client.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["runtime"]},"command":{"enum":["packet"]},"payload":{"required":["port","event","graph"],"additionalProperties":false,"properties":{"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"event":{"type":"string","enum":["connect","begingroup","data","endgroup","disconnect"],"description":"packet event"},"type":{"type":"string","description":"The basic datatype sent","example":"array"},"schema":{"type":"string","format":"uri","description":"Link to JSON schema describing the format of the data","example":"https://example.net/schemas/person.json"},"payload":{"description":"payload for the packet. Used only with begingroup (for group names) and data packets"},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]}}},"shared":{"$schema":"http://json-schema.org/draft-04/schema#","title":"Shared","description":"Shared schema fragments","graph_id":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"},"node_id":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port_id":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"input_message":{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},"output_message":{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},"metadata_node":{"id":"metadata_node","description":"structure of key-value pairs for graph node metadata","type":"object","additionalProperties":true,"required":[],"properties":{"x":{"type":"integer","description":"X coordinate of a graph entity"},"y":{"type":"integer","description":"Y coordinate of a graph entity"}}},"metadata_edge":{"id":"metadata_edge","description":"structure of key-value pairs for graph edge metadata","type":"object","additionalProperties":true,"required":[],"properties":{"route":{"type":"integer","description":"Route identifier of a graph entity"},"schema":{"type":"string","format":"uri","description":"JSON schema associated with a graph entity"},"secure":{"type":"boolean","description":"Whether graph entity data should be treated as secure"}}},"metadata_group":{"id":"metadata_group","description":"structure of key-value pairs for graph group metadata","type":"object","additionalProperties":true,"required":[],"properties":{"description":{"type":"string","description":"Longer textual description of the group"}}},"port":{"id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"port_definition":{"id":"port_definition","type":"array","items":{"type":"object","required":["id","type"],"additionalProperties":false,"properties":{"id":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"type":{"description":"port datatype","type":"string","example":"boolean"},"schema":{"type":"string","format":"uri","description":"Link to JSON schema for data on this port","example":"https://example.net/schemas/person.json"},"required":{"description":"whether the port needs to be connected for the component to work","type":"boolean","example":true},"addressable":{"type":"boolean","description":"whether the port is an ArrayPort","example":false},"description":{"type":"string","description":"textual description of the port"},"values":{"type":"array","description":"list of values accepted for the port"},"default":{"description":"default value for the port"}}}},"iip":{"id":"iip","type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"description":"IIP value in its actual data type","type":["object","array","string","number","integer","boolean","null"]}}},"network_event":{"id":"network_event","required":["id","tgt","graph"],"properties":{"id":{"type":"string","description":"textual edge identifier, usually in form of a FBP language line"},"src":{"description":"source node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"tgt":{"description":"target node for the edge","id":"port","type":"object","required":["node","port"],"additionalProperties":false,"properties":{"node":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"},"port":{"id":"port_id","description":"Port identifier in a component or process","type":"string","example":"in"},"index":{"type":["string","number"],"description":"connection index, for addressable ports"}}},"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"},"subgraph":{"type":"array","description":"Subgraph identifier for the event. An array of node IDs.","items":{"id":"node_id","description":"Node identifier in a graph","type":"string","example":"Repeat"}}}},"capabilities":{"id":"capabilities","type":"array","items":{"type":"string","enums":["protocol:network","network:persist","network:status","network:data","network:control","protocol:component","component:getsource","component:setsource","protocol:runtime","protocol:graph","graph:readonly","protocol:trace"],"_enumDescriptions":[{"name":"protocol:network","description":"can control and introspect its running networks using the Network protocol. DEPRECATED. Instead the individual network:... capabilities should be used. Implies capabilities network:status, network:data, network:control. Does not imply capability network:persist.","inputs":["network:start","network:getstatus","network:stop","network:debug","network:edges"],"outputs":["network:stopped","network:started","network:status","network:output","network:error","network:processerror","network:icon","network:connect","network:begingroup","network:data","network:endgroup","network:disconnect","network:edges"]},{"name":"network:persist","description":"can *flash* a running graph setup to the runtime, making it persistent across restarts","inputs":["network:persist"],"outputs":["network:persist","network:error"]},{"name":"network:status","description":"can get and follow changes to network status","inputs":["network:getstatus"],"outputs":["network:status","network:started","network:stopped","network:error"]},{"name":"network:data","description":"can listen to data flowing through the network and processes","inputs":["network:edges"],"outputs":["network:edges","network:output","network:error","network:data","network:begingroup","network:endgroup","network:connect","network:disconnect","network:icon","network:processerror","network:error"]},{"name":"network:control","description":"can start and stop networks","inputs":["network:start","network:stop","network:getstatus","network:debug"],"outputs":["network:started","network:stopped","network:status","network:error"]},{"name":"protocol:component","description":"can list components of the runtime using the component:list message.","inputs":["component:list"],"outputs":["component:component","component:componentsready","component:error"]},{"name":"component:getsource","description":"read and send component source code back to client","inputs":["component:getsource"],"outputs":["component:source","component:error"]},{"name":"component:setsource","description":"runtime is able to compile and run custom components sent as source code strings","inputs":["component:source"],"outputs":["component:component","component:error"]},{"name":"protocol:runtime","description":"can expose ports of main graph and transmit packet information to/from them","inputs":["runtime:packet"],"outputs":["runtime:ports","runtime:packetsent","runtime:packet","runtime:error"]},{"name":"graph:readonly","description":"read and follow changes to runtime graphs (but not modify)","inputs":[],"outputs":["graph:clear","graph:addnode","graph:removenode","graph:renamenode","graph:changenode","graph:addedge","graph:removeedge","graph:changeedge","graph:addinitial","graph:removeinitial","graph:addinport","graph:removeinport","graph:renameinport","graph:addoutport","graph:removeoutport","graph:renameoutport","graph:addgroup","graph:removegroup","graph:renamegroup","graph:changegroup"]},{"name":"protocol:graph","description":"read & modify runtime graphs using the Graph protocol.","inputs":["graph:clear","graph:addnode","graph:removenode","graph:renamenode","graph:changenode","graph:addedge","graph:removeedge","graph:changeedge","graph:addinitial","graph:removeinitial","graph:addinport","graph:removeinport","graph:renameinport","graph:addoutport","graph:removeoutport","graph:renameoutport","graph:addgroup","graph:removegroup","graph:renamegroup","graph:changegroup"],"outputs":["graph:clear","graph:addnode","graph:removenode","graph:renamenode","graph:changenode","graph:addedge","graph:removeedge","graph:changeedge","graph:addinitial","graph:removeinitial","graph:addinport","graph:removeinport","graph:renameinport","graph:addoutport","graph:removeoutport","graph:renameoutport","graph:addgroup","graph:removegroup","graph:renamegroup","graph:changegroup","graph:error"]},{"name":"protocol:trace","description":"runtime is able to record and send over flowtraces, used for retroactive debugging.","inputs":["trace:start","trace:stop","trace:clear","trace:dump"],"outputs":["trace:start","trace:stop","trace:clear","trace:dump","trace:error"]}]}}},"trace":{"$schema":"http://json-schema.org/draft-04/schema#","title":"Trace protocol","description":"This protocol is utilized for triggering and transmitting [Flowtrace](https://github.com/flowbased/flowtrace)s","messages":{"start":{"properties":{"protocol":{"enum":["trace"]},"command":{"enum":["start"]},"payload":{"required":["graph"],"additionalProperties":false,"properties":{"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"},"buffersize":{"description":"Size of tracing buffer to keep. In bytes","type":"integer"}}}}},"stop":{"properties":{"protocol":{"enum":["trace"]},"command":{"enum":["stop"]},"payload":{"required":["graph"],"additionalProperties":false,"properties":{"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}},"clear":{"properties":{"protocol":{"enum":["trace"]},"command":{"enum":["clear"]},"payload":{"required":["graph"],"additionalProperties":false,"properties":{"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}},"output":{"start":{"id":"output/start","description":"Tracing was started","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["trace"]},"command":{"enum":["start"]},"payload":{"required":["graph"],"additionalProperties":false,"properties":{"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"},"buffersize":{"description":"Size of tracing buffer to keep. In bytes","type":"integer"}}}}}]},"stop":{"id":"output/stop","description":"Tracing was stopped","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["trace"]},"command":{"enum":["stop"]},"payload":{"required":["graph"],"additionalProperties":false,"properties":{"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"clear":{"id":"output/clear","description":"Tracing buffer was cleared","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["trace"]},"command":{"enum":["clear"]},"payload":{"required":["graph"],"additionalProperties":false,"properties":{"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"dump":{"id":"output/dump","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["trace"]},"command":{"enum":["dump"]},"payload":{"required":["graph","type","flowtrace"],"additionalProperties":false,"properties":{"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"},"type":{"description":"String describing type of trace.","type":"string","enum":["flowtrace.json"]},"flowtrace":{"description":"A Flowtrace file of `type`","type":"string"}}}}}]},"error":{"id":"output/error","description":"Error response to a command on trace protocol","allOf":[{"id":"message","description":"protocol message sent by a runtime","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message"},"responseTo":{"type":"string","description":"unique identifier of the request message is response to"}}},{"properties":{"protocol":{"enum":["trace"]},"command":{"enum":["error"]},"payload":{"required":["message"],"properties":{"message":{"type":"string","description":"Error message describing what went wrong"}}}}}]}},"input":{"start":{"id":"input/start","description":"Enable/start tracing of a network.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["trace"]},"command":{"enum":["start"]},"payload":{"required":["graph"],"additionalProperties":false,"properties":{"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"},"buffersize":{"description":"Size of tracing buffer to keep. In bytes","type":"integer"}}}}}]},"stop":{"description":"Stop/disable tracing of a network.","id":"input/stop","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["trace"]},"command":{"enum":["stop"]},"payload":{"required":["graph"],"additionalProperties":false,"properties":{"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]},"dump":{"id":"input/dump","description":"Trigger dumping of the current tracing buffer, to return it back to server.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["trace"]},"command":{"enum":["dump"]},"payload":{"required":["graph","type"],"additionalProperties":false,"properties":{"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"},"type":{"description":"Type/format of trace to output","type":"string","enum":["flowtrace.json"]}}}}}]},"clear":{"id":"input/clear","description":"Clear current tracing buffer.","allOf":[{"id":"message","description":"protocol message sent by a client","additionalProperties":false,"required":["protocol","command","payload"],"properties":{"protocol":{"type":"string","description":"type of protocol","example":"graph"},"command":{"type":"string","description":"command to be executed","example":"addnode"},"payload":{"type":"object","description":"content of message","properties":{"secret":{"type":"string","description":"access token to authorize the client. Legacy location, use toplevel secret instead"}}},"secret":{"type":"string","description":"access token to authorize the client"},"requestId":{"type":"string","description":"unique request identifier"}}},{"properties":{"protocol":{"enum":["trace"]},"command":{"enum":["clear"]},"payload":{"required":["graph"],"additionalProperties":false,"properties":{"graph":{"id":"graph_id","description":"Graph identifier the message targets","type":"string"}}}}}]}}}}
\No newline at end of file