diff --git a/bindings/ros2/0.1.0/operation.json b/bindings/ros2/0.1.0/operation.json new file mode 100644 index 00000000..eefbb8d1 --- /dev/null +++ b/bindings/ros2/0.1.0/operation.json @@ -0,0 +1,82 @@ +{ + "type": "object", + "description": "This object contains information about the operation representation in ROS 2.", + "additionalProperties": false, + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "required": [ + "role", + "node" + ], + "properties": { + "role": { + "type": "string", + "description": "Specifies the ROS 2 type of the node for this operation.", + "enum": ["publisher", "action_client", "service_client", "subscriber", "action_server", "service_server"] + }, + "node": { + "type": "string", + "description": "The name of the ROS 2 node that implements this operation." + }, + "qosPolicies": { + "type": "object", + "properties": { + "reliability": { + "type": "string", + "description": "Specifies the communication guarantee model that determines whether message delivery confirmation between publisher and subscriber is required.", + "enum": ["best_effort", "realiable"] + }, + "history": { + "type": "string", + "description": "Policy parameter that defines the maximum number of samples maintained in the middleware queue", + "enum": ["keep_last", "keep_all", "unknown"] + }, + "durability": { + "type": "string", + "description": "Persistence specification that determines message availability for late-joining subscribers", + "enum": ["transient_local", "volatile"] + }, + "lifespan": { + "type": "integer", + "description": "The maximum amount of time between the publishing and the reception of a message without the message being considered stale or expired. -1 means infinite." + }, + "deadline": { + "type": "integer", + "description": "The expected maximum amount of time between subsequent messages being published to a topic. -1 means infinite." + }, + "liveliness": { + "type": "string", + "description": "Defines the mechanism by which the system monitors and determines the operational status of communication entities within the network.", + "enum": ["automatic", "manual"] + }, + "leaseDuration": { + "type": "integer", + "description": "The maximum period of time a publisher has to indicate that it is alive before the system considers it to have lost liveliness. -1 means infinite." + } + } + }, + "bindingVersion": { + "type": "string", + "enum": [ + "0.1.0" + ], + "description": "The version of this binding. If omitted, 'latest' MUST be assumed." + } + }, + "examples": { + "role": "subscriber", + "node": "/turtlesim", + "qosPolicies": { + "history": "unknown", + "reliability": "reliable", + "durability": "volatile", + "lifespan": "-1", + "deadline": "-1", + "liveliness": "automatic", + "leaseDuration": "-1" + } + } +} \ No newline at end of file diff --git a/bindings/ros2/0.1.0/server.json b/bindings/ros2/0.1.0/server.json new file mode 100644 index 00000000..7703a9f3 --- /dev/null +++ b/bindings/ros2/0.1.0/server.json @@ -0,0 +1,33 @@ +{ + "type": "object", + "description": "This object contains information about the server representation in ROS 2.", + "required": ["host", "protocol"], + "patternProperties": { + "^x-[\\w\\d\\.\\x2d_]+$": { + "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" + } + }, + "properties": { + "rmwImplementation": { + "type": "string", + "description": "Specifies the ROS 2 middleware implementation to be used. This determines the underlying middleware implementation that handles communication." + }, + "domainId": { + "type": "integer", + "minimum": 0, + "maximum": 231, + "description": "All ROS 2 nodes use domain ID 0 by default. To prevent interference between different groups of computers running ROS 2 on the same network, a group can be set with a unique domain ID." + }, + "bindingVersion": { + "type": "string", + "enum": [ + "0.1.0" + ], + "description": "The version of this binding. If omitted, 'latest' MUST be assumed." + } + }, + "examples": { + "rmwImplementation": "rmw_fastrtps_cpp", + "domainId": "0" + } +} \ No newline at end of file