Skip to content

Commit e27a97f

Browse files
Pakisanderberg
andauthored
feat: release AsyncAPI 3.1.0 with ROS 2 binding (#588)
Co-authored-by: Pavel Bodiachevskii <PavelBodyachevskiy@gmail.com> Co-authored-by: Lukasz Gornicki <lpgornicki@gmail.com>
1 parent 094a703 commit e27a97f

File tree

92 files changed

+23020
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+23020
-0
lines changed

CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,6 @@
1717
/bindings/pulsar/ @VisualBean
1818
/bindings/sns/ @dpwdec @iancooper
1919
/bindings/sqs/ @dpwdec @iancooper
20+
/bindings/ros2/ @gramss @amparosancho
2021

2122
/bindings/*.json @KhudaDad414

bindings/ros2/0.1.0/operation.json

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"$id": "http://asyncapi.com/bindings/ros2/0.1.0/operation.json",
4+
"description": "This object contains information about the operation representation in ROS 2.",
5+
"examples": [
6+
{
7+
"node": "/turtlesim",
8+
"qosPolicies": {
9+
"deadline": "-1",
10+
"durability": "volatile",
11+
"history": "unknown",
12+
"leaseDuration": "-1",
13+
"lifespan": "-1",
14+
"liveliness": "automatic",
15+
"reliability": "reliable"
16+
},
17+
"role": "subscriber"
18+
}
19+
],
20+
"type": "object",
21+
"required": [ "role", "node" ],
22+
"properties": {
23+
"bindingVersion": {
24+
"description": "The version of this binding. If omitted, 'latest' MUST be assumed.",
25+
"type": "string",
26+
"enum": [ "0.1.0" ]
27+
},
28+
"node": {
29+
"description": "The name of the ROS 2 node that implements this operation.",
30+
"type": "string"
31+
},
32+
"qosPolicies": {
33+
"type": "object",
34+
"properties": {
35+
"deadline": {
36+
"description": "The expected maximum amount of time between subsequent messages being published to a topic. -1 means infinite.",
37+
"type": "integer"
38+
},
39+
"durability": {
40+
"description": "Persistence specification that determines message availability for late-joining subscribers",
41+
"type": "string",
42+
"enum": [ "transient_local", "volatile" ]
43+
},
44+
"history": {
45+
"description": "Policy parameter that defines the maximum number of samples maintained in the middleware queue",
46+
"type": "string",
47+
"enum": [ "keep_last", "keep_all", "unknown" ]
48+
},
49+
"leaseDuration": {
50+
"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.",
51+
"type": "integer"
52+
},
53+
"lifespan": {
54+
"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.",
55+
"type": "integer"
56+
},
57+
"liveliness": {
58+
"description": "Defines the mechanism by which the system monitors and determines the operational status of communication entities within the network.",
59+
"type": "string",
60+
"enum": [ "automatic", "manual" ]
61+
},
62+
"reliability": {
63+
"description": "Specifies the communication guarantee model that determines whether message delivery confirmation between publisher and subscriber is required.",
64+
"type": "string",
65+
"enum": [ "best_effort", "realiable" ]
66+
}
67+
}
68+
},
69+
"role": {
70+
"description": "Specifies the ROS 2 type of the node for this operation.",
71+
"type": "string",
72+
"enum": [
73+
"publisher",
74+
"action_client",
75+
"service_client",
76+
"subscriber",
77+
"action_server",
78+
"service_server"
79+
]
80+
}
81+
},
82+
"patternProperties": {
83+
"^x-[\\w\\d\\.\\x2d_]+$": {
84+
"$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json"
85+
}
86+
},
87+
"additionalProperties": false
88+
}

bindings/ros2/0.1.0/server.json

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"$id": "http://asyncapi.com/bindings/ros2/0.1.0/server.json",
4+
"description": "This object contains information about the server representation in ROS 2.",
5+
"examples": [
6+
{
7+
"domainId": "0",
8+
"rmwImplementation": "rmw_fastrtps_cpp"
9+
}
10+
],
11+
"type": "object",
12+
"required": [ "host", "protocol" ],
13+
"properties": {
14+
"bindingVersion": {
15+
"description": "The version of this binding. If omitted, 'latest' MUST be assumed.",
16+
"type": "string",
17+
"enum": [ "0.1.0" ]
18+
},
19+
"domainId": {
20+
"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.",
21+
"type": "integer",
22+
"maximum": 231,
23+
"minimum": 0
24+
},
25+
"rmwImplementation": {
26+
"description": "Specifies the ROS 2 middleware implementation to be used. This determines the underlying middleware implementation that handles communication.",
27+
"type": "string"
28+
}
29+
},
30+
"patternProperties": {
31+
"^x-[\\w\\d\\.\\x2d_]+$": {
32+
"$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json"
33+
}
34+
}
35+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"$id": "http://asyncapi.com/definitions/3.1.0/APIKeyHTTPSecurityScheme.json",
4+
"type": "object",
5+
"required": [ "type", "name", "in" ],
6+
"properties": {
7+
"description": {
8+
"description": "A short description for security scheme. CommonMark syntax MAY be used for rich text representation.",
9+
"type": "string"
10+
},
11+
"type": {
12+
"description": "The type of the security scheme.",
13+
"type": "string",
14+
"enum": [ "httpApiKey" ]
15+
},
16+
"in": {
17+
"description": "The location of the API key",
18+
"type": "string",
19+
"enum": [ "header", "query", "cookie" ]
20+
},
21+
"name": {
22+
"description": "The name of the header, query or cookie parameter to be used.",
23+
"type": "string"
24+
}
25+
},
26+
"patternProperties": {
27+
"^x-[\\w\\d\\.\\x2d_]+$": {
28+
"$ref": "http://asyncapi.com/definitions/3.1.0/specificationExtension.json"
29+
}
30+
},
31+
"additionalProperties": false,
32+
"example": {
33+
"$ref": "http://asyncapi.com/examples/3.1.0/APIKeyHTTPSecurityScheme.json"
34+
}
35+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"$id": "http://asyncapi.com/definitions/3.1.0/BearerHTTPSecurityScheme.json",
4+
"type": "object",
5+
"required": [ "type", "scheme" ],
6+
"properties": {
7+
"description": {
8+
"description": "A short description for security scheme. CommonMark syntax MAY be used for rich text representation.",
9+
"type": "string"
10+
},
11+
"type": {
12+
"description": "The type of the security scheme.",
13+
"type": "string",
14+
"enum": [ "http" ]
15+
},
16+
"bearerFormat": {
17+
"description": "A hint to the client to identify how the bearer token is formatted. Bearer tokens are usually generated by an authorization server, so this information is primarily for documentation purposes.",
18+
"type": "string"
19+
},
20+
"scheme": {
21+
"description": "The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235.",
22+
"type": "string",
23+
"enum": [ "bearer" ]
24+
}
25+
},
26+
"patternProperties": {
27+
"^x-[\\w\\d\\.\\x2d_]+$": {
28+
"$ref": "http://asyncapi.com/definitions/3.1.0/specificationExtension.json"
29+
}
30+
},
31+
"additionalProperties": false
32+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"$id": "http://asyncapi.com/definitions/3.1.0/HTTPSecurityScheme.json",
4+
"oneOf": [
5+
{
6+
"$ref": "http://asyncapi.com/definitions/3.1.0/NonBearerHTTPSecurityScheme.json"
7+
},
8+
{
9+
"$ref": "http://asyncapi.com/definitions/3.1.0/BearerHTTPSecurityScheme.json"
10+
},
11+
{
12+
"$ref": "http://asyncapi.com/definitions/3.1.0/APIKeyHTTPSecurityScheme.json"
13+
}
14+
]
15+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"$id": "http://asyncapi.com/definitions/3.1.0/NonBearerHTTPSecurityScheme.json",
4+
"type": "object",
5+
"not": {
6+
"type": "object",
7+
"properties": {
8+
"scheme": {
9+
"description": "A short description for security scheme.",
10+
"type": "string",
11+
"enum": [ "bearer" ]
12+
}
13+
}
14+
},
15+
"required": [ "scheme", "type" ],
16+
"properties": {
17+
"description": {
18+
"description": "A short description for security scheme.",
19+
"type": "string"
20+
},
21+
"type": {
22+
"description": "The type of the security scheme.",
23+
"type": "string",
24+
"enum": [ "http" ]
25+
},
26+
"scheme": {
27+
"description": "The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235.",
28+
"type": "string"
29+
}
30+
},
31+
"patternProperties": {
32+
"^x-[\\w\\d\\.\\x2d_]+$": {
33+
"$ref": "http://asyncapi.com/definitions/3.1.0/specificationExtension.json"
34+
}
35+
},
36+
"additionalProperties": false
37+
}

definitions/3.1.0/Reference.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"$id": "http://asyncapi.com/definitions/3.1.0/Reference.json",
4+
"description": "A simple object to allow referencing other components in the specification, internally and externally.",
5+
"type": "object",
6+
"required": [ "$ref" ],
7+
"properties": {
8+
"$ref": {
9+
"description": "The reference string.",
10+
"$ref": "http://asyncapi.com/definitions/3.1.0/ReferenceObject.json"
11+
}
12+
},
13+
"example": {
14+
"$ref": "http://asyncapi.com/examples/3.1.0/ReferenceObject.json"
15+
}
16+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"$id": "http://asyncapi.com/definitions/3.1.0/ReferenceObject.json",
4+
"type": "string",
5+
"format": "uri-reference"
6+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"$id": "http://asyncapi.com/definitions/3.1.0/SaslGssapiSecurityScheme.json",
4+
"type": "object",
5+
"required": [ "type" ],
6+
"properties": {
7+
"description": {
8+
"description": "A short description for security scheme.",
9+
"type": "string"
10+
},
11+
"type": {
12+
"description": "The type of the security scheme.",
13+
"type": "string",
14+
"enum": [ "gssapi" ]
15+
}
16+
},
17+
"patternProperties": {
18+
"^x-[\\w\\d\\.\\x2d_]+$": {
19+
"$ref": "http://asyncapi.com/definitions/3.1.0/specificationExtension.json"
20+
}
21+
},
22+
"additionalProperties": false,
23+
"example": {
24+
"$ref": "http://asyncapi.com/examples/3.1.0/Sasl.json"
25+
}
26+
}

0 commit comments

Comments
 (0)