Skip to content

Commit 8f0251e

Browse files
committed
🔧 Add Simvue config schema for use with LSPs
1 parent 5dcf22f commit 8f0251e

File tree

1 file changed

+328
-0
lines changed

1 file changed

+328
-0
lines changed
Lines changed: 328 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,328 @@
1+
{
2+
"$defs": {
3+
"ClientGeneralOptions": {
4+
"properties": {
5+
"debug": {
6+
"default": false,
7+
"title": "Debug",
8+
"type": "boolean"
9+
}
10+
},
11+
"title": "ClientGeneralOptions",
12+
"type": "object"
13+
},
14+
"DefaultRunSpecifications": {
15+
"properties": {
16+
"name": {
17+
"anyOf": [
18+
{
19+
"type": "string"
20+
},
21+
{
22+
"type": "null"
23+
}
24+
],
25+
"default": null,
26+
"title": "Name"
27+
},
28+
"description": {
29+
"anyOf": [
30+
{
31+
"type": "string"
32+
},
33+
{
34+
"type": "null"
35+
}
36+
],
37+
"default": null,
38+
"title": "Description"
39+
},
40+
"tags": {
41+
"anyOf": [
42+
{
43+
"items": {
44+
"type": "string"
45+
},
46+
"type": "array"
47+
},
48+
{
49+
"type": "null"
50+
}
51+
],
52+
"default": null,
53+
"title": "Tags"
54+
},
55+
"folder": {
56+
"default": "/",
57+
"pattern": "^/.*",
58+
"title": "Folder",
59+
"type": "string"
60+
},
61+
"metadata": {
62+
"anyOf": [
63+
{
64+
"additionalProperties": {
65+
"anyOf": [
66+
{
67+
"type": "string"
68+
},
69+
{
70+
"type": "integer"
71+
},
72+
{
73+
"type": "number"
74+
},
75+
{
76+
"type": "boolean"
77+
}
78+
]
79+
},
80+
"type": "object"
81+
},
82+
{
83+
"type": "null"
84+
}
85+
],
86+
"default": null,
87+
"title": "Metadata"
88+
},
89+
"mode": {
90+
"default": "online",
91+
"enum": [
92+
"offline",
93+
"disabled",
94+
"online"
95+
],
96+
"title": "Mode",
97+
"type": "string"
98+
}
99+
},
100+
"title": "DefaultRunSpecifications",
101+
"type": "object"
102+
},
103+
"EcoConfig": {
104+
"description": "Configurations for CO2 emission metrics gathering.\n\nParameters\n----------\nco2_signal_api_token: str | None, optional\n the CO2 signal API token (Recommended), default is None\ncpu_thermal_design_power: int | None, optional\n the TDP for the CPU\ngpu_thermal_design_power: int | None, optional\n the TDP for each GPU",
105+
"properties": {
106+
"co2_signal_api_token": {
107+
"anyOf": [
108+
{
109+
"format": "password",
110+
"type": "string",
111+
"writeOnly": true
112+
},
113+
{
114+
"type": "null"
115+
}
116+
],
117+
"default": null,
118+
"title": "Co2 Signal Api Token"
119+
},
120+
"cpu_thermal_design_power": {
121+
"anyOf": [
122+
{
123+
"exclusiveMinimum": 0,
124+
"type": "integer"
125+
},
126+
{
127+
"type": "null"
128+
}
129+
],
130+
"default": null,
131+
"title": "Cpu Thermal Design Power"
132+
},
133+
"cpu_n_cores": {
134+
"anyOf": [
135+
{
136+
"exclusiveMinimum": 0,
137+
"type": "integer"
138+
},
139+
{
140+
"type": "null"
141+
}
142+
],
143+
"default": null,
144+
"title": "Cpu N Cores"
145+
},
146+
"gpu_thermal_design_power": {
147+
"anyOf": [
148+
{
149+
"exclusiveMinimum": 0,
150+
"type": "integer"
151+
},
152+
{
153+
"type": "null"
154+
}
155+
],
156+
"default": null,
157+
"title": "Gpu Thermal Design Power"
158+
},
159+
"intensity_refresh_interval": {
160+
"anyOf": [
161+
{
162+
"anyOf": [
163+
{
164+
"exclusiveMinimum": 0,
165+
"type": "integer"
166+
},
167+
{
168+
"type": "string"
169+
}
170+
],
171+
"gt": 120
172+
},
173+
{
174+
"type": "null"
175+
}
176+
],
177+
"default": "1 hour",
178+
"title": "Intensity Refresh Interval"
179+
},
180+
"co2_intensity": {
181+
"anyOf": [
182+
{
183+
"type": "number"
184+
},
185+
{
186+
"type": "null"
187+
}
188+
],
189+
"default": null,
190+
"title": "Co2 Intensity"
191+
}
192+
},
193+
"title": "EcoConfig",
194+
"type": "object"
195+
},
196+
"MetricsSpecifications": {
197+
"properties": {
198+
"system_metrics_interval": {
199+
"anyOf": [
200+
{
201+
"exclusiveMinimum": 0,
202+
"type": "integer"
203+
},
204+
{
205+
"type": "null"
206+
}
207+
],
208+
"default": -1,
209+
"title": "System Metrics Interval"
210+
},
211+
"enable_emission_metrics": {
212+
"default": false,
213+
"title": "Enable Emission Metrics",
214+
"type": "boolean"
215+
}
216+
},
217+
"title": "MetricsSpecifications",
218+
"type": "object"
219+
},
220+
"OfflineSpecifications": {
221+
"properties": {
222+
"cache": {
223+
"anyOf": [
224+
{
225+
"format": "path",
226+
"type": "string"
227+
},
228+
{
229+
"type": "null"
230+
}
231+
],
232+
"default": null,
233+
"title": "Cache"
234+
}
235+
},
236+
"title": "OfflineSpecifications",
237+
"type": "object"
238+
},
239+
"ServerSpecifications": {
240+
"properties": {
241+
"url": {
242+
"anyOf": [
243+
{
244+
"format": "uri",
245+
"minLength": 1,
246+
"type": "string"
247+
},
248+
{
249+
"type": "null"
250+
}
251+
],
252+
"title": "Url"
253+
},
254+
"token": {
255+
"anyOf": [
256+
{
257+
"format": "password",
258+
"type": "string",
259+
"writeOnly": true
260+
},
261+
{
262+
"type": "null"
263+
}
264+
],
265+
"title": "Token"
266+
}
267+
},
268+
"required": [
269+
"url",
270+
"token"
271+
],
272+
"title": "ServerSpecifications",
273+
"type": "object"
274+
}
275+
},
276+
"properties": {
277+
"client": {
278+
"$ref": "#/$defs/ClientGeneralOptions",
279+
"default": {
280+
"debug": false
281+
}
282+
},
283+
"server": {
284+
"$ref": "#/$defs/ServerSpecifications",
285+
"description": "Specifications for Simvue server"
286+
},
287+
"run": {
288+
"$ref": "#/$defs/DefaultRunSpecifications",
289+
"default": {
290+
"name": null,
291+
"description": null,
292+
"tags": null,
293+
"folder": "/",
294+
"metadata": null,
295+
"mode": "online"
296+
}
297+
},
298+
"offline": {
299+
"$ref": "#/$defs/OfflineSpecifications",
300+
"default": {
301+
"cache": null
302+
}
303+
},
304+
"metrics": {
305+
"$ref": "#/$defs/MetricsSpecifications",
306+
"default": {
307+
"system_metrics_interval": -1,
308+
"enable_emission_metrics": false
309+
}
310+
},
311+
"eco": {
312+
"$ref": "#/$defs/EcoConfig",
313+
"default": {
314+
"co2_signal_api_token": null,
315+
"cpu_thermal_design_power": null,
316+
"cpu_n_cores": null,
317+
"gpu_thermal_design_power": null,
318+
"intensity_refresh_interval": "1 hour",
319+
"co2_intensity": null
320+
}
321+
}
322+
},
323+
"required": [
324+
"server"
325+
],
326+
"title": "SimvueConfiguration",
327+
"type": "object"
328+
}

0 commit comments

Comments
 (0)