1
+ {
2
+ "$schema" : " http://json-schema.org/draft-07/schema#" ,
3
+ "$id" : " services-schema.json" ,
4
+ "self" : {
5
+ "vendor" : " unical" ,
6
+ "name" : " services" ,
7
+ "format" : " jsonschema" ,
8
+ "version" : " 1-0-0"
9
+ },
10
+ "properties" : {
11
+ "languages" : {
12
+ "title" : " Supported languages." ,
13
+ "description" : " This property indicates all the supported languages by the services avalable on the LoIDE Web Application." ,
14
+ "type" : " array" ,
15
+ "minItems" : 1 ,
16
+ "items" : {
17
+ "$ref" : " #/definitions/language"
18
+ }
19
+ }
20
+ },
21
+ "required" : [
22
+ " languages"
23
+ ],
24
+ "additionalProperties" : false ,
25
+ "definitions" : {
26
+ "language" : {
27
+ "type" : " object" ,
28
+ "properties" : {
29
+ "name" : {
30
+ "title" : " Language name." ,
31
+ "description" : " This property indicates the language name." ,
32
+ "type" : " string"
33
+ },
34
+ "value" : {
35
+ "title" : " Language value." ,
36
+ "description" : " This property indicates the language value used in communication with other services." ,
37
+ "type" : " string"
38
+ },
39
+ "syntax-highlighter" : {
40
+ "title" : " Syntax-Highlighter path." ,
41
+ "description" : " This property indicates the syntax highlighter path corresponding to this language." ,
42
+ "type" : " object" ,
43
+ "properties" : {
44
+ "name" : {
45
+ "title" : " Syntax-Highlighter name." ,
46
+ "description" : " This property indicates the syntax-highlighter name." ,
47
+ "type" : " string"
48
+ },
49
+ "description" : {
50
+ "title" : " Syntax-Highlighter description." ,
51
+ "description" : " This property indicates the syntax-highlighter description." ,
52
+ "type" : " string"
53
+ },
54
+ "path" : {
55
+ "title" : " Syntax-Highlighter path." ,
56
+ "description" : " This property indicates the syntax-highlighter file path." ,
57
+ "type" : " string"
58
+ }
59
+ },
60
+ "required" : [
61
+ " name" ,
62
+ " path"
63
+ ],
64
+ "additionalProperties" : false
65
+ },
66
+ "solvers" : {
67
+ "title" : " Supporting solvers." ,
68
+ "description" : " This property indicates all supporting solvers for this language." ,
69
+ "type" : " array" ,
70
+ "minItems" : 1 ,
71
+ "items" : {
72
+ "$ref" : " #/definitions/solver"
73
+ }
74
+ }
75
+ },
76
+ "required" : [
77
+ " name" ,
78
+ " value" ,
79
+ " solvers"
80
+ ],
81
+ "additionalProperties" : false
82
+ },
83
+ "solver" : {
84
+ "type" : " object" ,
85
+ "properties" : {
86
+ "name" : {
87
+ "title" : " Solver name." ,
88
+ "description" : " This property indicates the solver name." ,
89
+ "type" : " string"
90
+ },
91
+ "value" : {
92
+ "title" : " Solver value." ,
93
+ "description" : " This property indicates the solver value used in communication with other services." ,
94
+ "type" : " string"
95
+ },
96
+ "executors" : {
97
+ "title" : " Supporting executors." ,
98
+ "description" : " This property indicates all supporting executors for this solver." ,
99
+ "type" : " array" ,
100
+ "minItems" : 1 ,
101
+ "items" : {
102
+ "$ref" : " #/definitions/executor"
103
+ }
104
+ },
105
+ "options" : {
106
+ "title" : " Solver option" ,
107
+ "description" : " This property indicates the options supported by the solver." ,
108
+ "type" : " array" ,
109
+ "minItems" : 1 ,
110
+ "items" : {
111
+ "type" : " object" ,
112
+ "properties" : {
113
+ "name" : {
114
+ "title" : " Option name." ,
115
+ "description" : " This property indicates the option name." ,
116
+ "type" : " string"
117
+ },
118
+ "value" : {
119
+ "title" : " Option value." ,
120
+ "description" : " This property indicates the command line argument passed to the solver." ,
121
+ "type" : " string"
122
+ },
123
+ "word_argument" : {
124
+ "title" : " Word argument." ,
125
+ "description" : " This property indicates if this type of argument requires the second argument or it's just a word argument (this is just a flag)." ,
126
+ "type" : " boolean"
127
+ },
128
+ "description" : {
129
+ "title" : " Option description." ,
130
+ "description" : " This property contains the description of the option." ,
131
+ "type" : " string"
132
+ }
133
+ },
134
+ "required" : [
135
+ " name" ,
136
+ " value" ,
137
+ " word_argument" ,
138
+ " description"
139
+ ],
140
+ "additionalProperties" : false
141
+ }
142
+ }
143
+ },
144
+ "required" : [
145
+ " name" ,
146
+ " value" ,
147
+ " executors" ,
148
+ " options"
149
+ ],
150
+ "additionalProperties" : false
151
+ },
152
+ "executor" : {
153
+ "type" : " object" ,
154
+ "properties" : {
155
+ "protocol" : {
156
+ "title" : " Protocol name." ,
157
+ "description" : " This property indicates the protocol name to use for a connection with this Executor." ,
158
+ "enum" : [ " ws" , " http" ]
159
+ },
160
+ "url" : {
161
+ "title" : " Executor URL." ,
162
+ "description" : " This property indicates the executor URL to connect with it." ,
163
+ "type" : " string" ,
164
+ "oneOf" : [
165
+ { "format" : " hostname" },
166
+ { "format" : " ipv4" },
167
+ { "format" : " ipv6" }
168
+ ]
169
+ },
170
+ "name" : {
171
+ "title" : " Executor name." ,
172
+ "description" : " This property indicates the executor name." ,
173
+ "type" : " string"
174
+ },
175
+ "value" : {
176
+ "title" : " Executor value." ,
177
+ "description" : " This property indicates the option value." ,
178
+ "type" : " string"
179
+ },
180
+ "path" : {
181
+ "title" : " Executor path." ,
182
+ "description" : " This property indicates the executor path relative to its URL." ,
183
+ "type" : " string" ,
184
+ "_comment" : " Add the pattern to match with the 'path'."
185
+ },
186
+ "port" : {
187
+ "title" : " Connection port number." ,
188
+ "description" : " This property indicates the port number open on this executor for the incoming connections." ,
189
+ "type" : " number" ,
190
+ "minimum" : 0 ,
191
+ "maximum" : 65535
192
+ }
193
+ },
194
+ "required" : [
195
+ " protocol" ,
196
+ " url" ,
197
+ " path" ,
198
+ " port"
199
+ ],
200
+ "additionalProperties" : false
201
+ }
202
+ }
203
+ }
0 commit comments