-
-
Notifications
You must be signed in to change notification settings - Fork 603
/
tools-schema.json
220 lines (220 loc) · 9.65 KB
/
tools-schema.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "JSON Schema for AsyncAPI tool discovery file.",
"type": "object",
"additionalProperties": false,
"required": [
"title",
"filters"
],
"properties": {
"title": {
"type": "string",
"description": "Human-readable name of the tool that will be visible to people in the list of tools.",
"examples": [
"AsyncAPI Generator",
"Cupid"
]
},
"description": {
"type": "string",
"description": "By default scripts read description of repository there project is stored. You can override this behaviour by providing custom description."
},
"links": {
"type": "object",
"additionalProperties": false,
"properties": {
"websiteUrl": {
"type": "string",
"description": "You can provide URL to the website where your project hosts some demo or project landing page.",
"format": "uri"
},
"docsUrl": {
"type": "string",
"description": "You can provide URL to project documentation in case you have more than just a readme file.",
"format": "uri"
},
"repoUrl": {
"type": "string",
"description": "You can provide URL to project codebase in case you have more than one tool present inside single repository.",
"format": "uri"
}
}
},
"filters": {
"type": "object",
"additionalProperties": false,
"required": [
"categories"
],
"properties": {
"language": {
"description": "The language referred to is the runtime language selected by the user, not the generator or library language. For example, the Generator written in JavaScript generates Python code from the JavaScript template and the result of generation is a Python app, so the language for Generator is specified as Python. But for the Bundler library, users need to know if it can be integrated into their TypeScript codebase, so its language is specified as TypeScript. If some language in the schema's enum is omitted, it can be added through a pull request to the AsyncAPI website repository.",
"anyOf": [
{
"type": "string",
"anyOf": [
{
"type": "string",
"enum": [
"Go",
"Java",
"JavaScript",
"HTML",
"C/C++",
"C#",
"Python",
"TypeScript",
"Kotlin",
"Scala",
"Markdown",
"YAML",
"R",
"Rubby",
"Rust",
"Shell",
"Groovy"
]
},
{
"type": "string"
}
]
},
{
"type": "array",
"items": {
"type": "string",
"anyOf": [
{
"type": "string",
"enum": [
"Go",
"Java",
"JavaScript",
"HTML",
"C/C++",
"C#",
"Python",
"TypeScript",
"Kotlin",
"Scala",
"Markdown",
"YAML",
"R",
"Rubby",
"Rust",
"Shell",
"Groovy"
]
},
{
"type": "string"
}
]
}
}
]
},
"technology": {
"type": "array",
"description": "Provide a list of different technologies used in the tool. Put details useful for tool user and tool contributor.",
"items": {
"type": "string",
"anyOf": [
{
"type": "string",
"enum": [
"Node js",
"Hermes",
"React JS",
".NET",
"ASP.NET",
"Springboot",
"AWS",
"Docker",
"Node-red",
"Maven",
"Saas",
"Kubernetes-native",
"Scala",
"Azure",
"Jenkins",
"Flask"
]
},
{
"type": "string"
}
]
},
"examples": [
"Express.js",
"Kafka"
]
},
"categories": {
"type": "array",
"description": "Categories are used to group tools by different use case, like documentation or code generation. If have a list of fixed categories. If you use different one that your tool lands under \"other\" category. Feel free to add your category through a pull request to AsyncAPI website repository.",
"items": {
"type": "string",
"anyOf": [
{
"type": "string",
"enum": [
"api",
"code-first",
"code-generator",
"converter",
"directory",
"documentation-generator",
"editor",
"ui-component",
"dsl",
"framework",
"github-action",
"mocking-and-testing",
"validator",
"compare-tool",
"other",
"cli",
"bundler",
"ide-extension"
]
},
{
"type": "string"
}
]
},
"minItems": 1,
"examples": [
"api",
"code-first",
"code-generator",
"converter",
"directory",
"documentation-generator",
"editor",
"ui-component",
"dsl",
"framework",
"github-action",
"mocking-and-testing",
"validator",
"compare-tool",
"other",
"cli",
"bundler",
"ide-extension"
]
},
"hasCommercial": {
"type": "boolean",
"description": "Indicate if your tool is open source or commercial offering, like SAAS for example",
"default": false
}
}
}
}
}