blob: bf69511645951cf3fadaa30b1b115cc25d07ad39 [file] [log] [blame]
James Feistaf996fe2018-09-14 16:02:44 -07001{
2 "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
James Feistbaa5c142018-12-12 17:28:36 -08003 "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
James Feistaf996fe2018-09-14 16:02:44 -07004 "definitions": {
5 "Fan": {
6 "additionalProperties": true,
7 "description": "OpenBmc oem fan properties.",
8 "patternProperties": {
9 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
10 "description": "This property shall specify a valid odata or Redfish property.",
11 "type": [
12 "array",
13 "boolean",
14 "number",
15 "null",
16 "object",
17 "string"
18 ]
19 }
20 },
21 "properties": {
22 "FanControllers": {
23 "anyOf": [
24 {
25 "$ref": "#/definitions/FanControllers"
26 },
27 {
28 "type": "null"
29 }
30 ]
31 },
32 "FanZones": {
33 "anyOf": [
34 {
35 "$ref": "#/definitions/FanZones"
36 },
37 {
38 "type": "null"
39 }
40 ]
41 },
42 "PidControllers": {
43 "anyOf": [
44 {
45 "$ref": "#/definitions/PidControllers"
46 },
47 {
48 "type": "null"
49 }
50 ]
James Feistbaa5c142018-12-12 17:28:36 -080051 },
52 "StepwiseControllers": {
53 "anyOf": [
54 {
55 "$ref": "#/definitions/StepwiseControllers"
56 },
57 {
58 "type": "null"
59 }
60 ]
James Feistaf996fe2018-09-14 16:02:44 -070061 }
62 },
63 "type": "object"
64 },
65 "FanController": {
66 "additionalProperties": false,
67 "description": "Configuration data for Fan Controllers.",
68 "patternProperties": {
69 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
70 "description": "This property shall specify a valid odata or Redfish property.",
71 "type": [
72 "array",
73 "boolean",
74 "number",
75 "null",
76 "object",
77 "string"
78 ]
79 }
80 },
81 "properties": {
82 "FFGainCoefficient": {
83 "description": "Feed forward gain coefficent for the PID.",
84 "longDescription": "Feed forward gain coefficent for the PID.",
85 "type": "number"
86 },
87 "FFOffCoefficient": {
88 "description": "Feed forward offset coefficent for the PID.",
89 "longDescription": "Feed forward offset coefficent for the PID.",
90 "type": "number"
91 },
92 "ICoefficient": {
93 "description": "Integral Coefficent for the PID.",
94 "longDescription": "Integral Coefficent for the PID.",
95 "type": "number"
96 },
97 "ILimitMax": {
98 "description": "Integral limit maxiumum for the PID.",
99 "longDescription": "Integral limit maxiumum for the PID.",
100 "type": "number"
101 },
102 "ILimitMin": {
103 "description": "Integral limit miniumum for the PID.",
104 "longDescription": "Integral limit miniumum for the PID.",
105 "type": "number"
106 },
107 "Inputs": {
108 "description": "Input sensors to the PID controller.",
109 "items": {
110 "type": [
111 "string",
112 "null"
113 ]
114 },
115 "longDescription": "Input sensors to the PID controller.",
116 "type": "array"
117 },
118 "OutLimitMax": {
119 "description": "Output limit maxiumum for the pwm.",
120 "longDescription": "Output limit maxiumum for the pwm.",
121 "type": "number"
122 },
123 "OutLimitMin": {
124 "description": "Output limit minimum for the pwm.",
125 "longDescription": "Output limit minimum for the pwm.",
126 "type": "number"
127 },
128 "Outputs": {
129 "description": "Output sensors to the PID controller.",
130 "items": {
131 "type": [
132 "string",
133 "null"
134 ]
135 },
136 "longDescription": "Output sensors to the PID controller.",
137 "type": "array"
138 },
139 "PCoefficient": {
140 "description": "Polynomial coefficent for the PID.",
141 "longDescription": "Polynomial coefficent for the PID.",
142 "type": "number"
143 },
144 "SlewNeg": {
145 "description": "Negative slew rate for the PID.",
146 "longDescription": "Negative slew rate for the PID.",
147 "type": "number"
148 },
149 "SlewPos": {
150 "description": "Positive slew rate for the PID.",
151 "longDescription": "Positive slew rate for the PID.",
152 "type": "number"
153 },
154 "Zones": {
155 "description": "Contains the Zones that this PID contributes to.",
156 "items": {
157 "$ref": "#/definitions/FanZone"
158 },
159 "readonly": true,
160 "type": "array"
161 },
162 "Zones@odata.count": {
163 "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
164 }
165 },
166 "type": "object"
167 },
168 "FanControllers": {
169 "additionalProperties": true,
170 "description": "OpenBmc FanControllers.",
171 "longDescription": "Container for OpenBmc fan controllers.",
172 "patternProperties": {
173 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
174 "description": "This property shall specify a valid odata or Redfish property.",
175 "type": [
176 "array",
177 "boolean",
178 "number",
179 "null",
180 "object",
181 "string"
182 ]
183 }
184 },
185 "properties": {},
186 "type": "object"
187 },
188 "FanZone": {
189 "additionalProperties": false,
190 "description": "Configuration data for Fan Controllers.",
191 "patternProperties": {
192 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
193 "description": "This property shall specify a valid odata or Redfish property.",
194 "type": [
195 "array",
196 "boolean",
197 "number",
198 "null",
199 "object",
200 "string"
201 ]
202 }
203 },
204 "properties": {
205 "Chassis": {
206 "anyOf": [
207 {
208 "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis"
209 },
210 {
211 "type": "null"
212 }
213 ],
214 "description": "The Chassis that enables this Zone.",
215 "readonly": true
216 },
217 "FailSafePercent": {
218 "description": "If the sensors are in fail-safe mode, this is the percentage to use.",
219 "longDescription": "If the sensors are in fail-safe mode, this is the percentage to use.",
220 "type": "number"
221 },
222 "MinThermalRpm": {
223 "description": "Minimum thermal RPM that can be set in this Zone.",
224 "longDescription": "Minimum thermal RPM that can be set in this Zone.",
225 "type": "number"
226 }
227 },
228 "type": "object"
229 },
230 "FanZones": {
231 "additionalProperties": true,
232 "description": "OpenBmc FanZones.",
233 "longDescription": "Container for OpenBmc fan zones.",
234 "patternProperties": {
235 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
236 "description": "This property shall specify a valid odata or Redfish property.",
237 "type": [
238 "array",
239 "boolean",
240 "number",
241 "null",
242 "object",
243 "string"
244 ]
245 }
246 },
247 "properties": {},
248 "type": "object"
249 },
250 "Oem": {
251 "additionalProperties": true,
252 "description": "OemManager Oem properties.",
253 "patternProperties": {
254 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
255 "description": "This property shall specify a valid odata or Redfish property.",
256 "type": [
257 "array",
258 "boolean",
259 "number",
260 "null",
261 "object",
262 "string"
263 ]
264 }
265 },
266 "properties": {
267 "OpenBmc": {
268 "anyOf": [
269 {
270 "$ref": "#/definitions/OpenBmc"
271 },
272 {
273 "type": "null"
274 }
275 ]
276 }
277 },
278 "type": "object"
279 },
280 "OpenBmc": {
281 "additionalProperties": true,
282 "description": "Oem properties for OpenBmc.",
283 "patternProperties": {
284 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
285 "description": "This property shall specify a valid odata or Redfish property.",
286 "type": [
287 "array",
288 "boolean",
289 "number",
290 "null",
291 "object",
292 "string"
293 ]
294 }
295 },
296 "properties": {
297 "Fan": {
298 "anyOf": [
299 {
300 "$ref": "#/definitions/Fan"
301 },
302 {
303 "type": "null"
304 }
305 ]
306 }
307 },
308 "type": "object"
309 },
310 "PidController": {
311 "additionalProperties": false,
312 "description": "Configuration data for Fan Controllers.",
313 "patternProperties": {
314 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
315 "description": "This property shall specify a valid odata or Redfish property.",
316 "type": [
317 "array",
318 "boolean",
319 "number",
320 "null",
321 "object",
322 "string"
323 ]
324 }
325 },
326 "properties": {
327 "FFGainCoefficient": {
328 "description": "Feed forward gain coefficent for the PID.",
329 "longDescription": "Feed forward gain coefficent for the PID.",
330 "type": "number"
331 },
332 "FFOffCoefficient": {
333 "description": "Feed forward offset coefficent for the PID.",
334 "longDescription": "Feed forward offset coefficent for the PID.",
335 "type": "number"
336 },
337 "ICoefficient": {
338 "description": "Integral Coefficent for the PID.",
339 "longDescription": "Integral Coefficent for the PID.",
340 "type": "number"
341 },
342 "ILimitMax": {
343 "description": "Integral limit maxiumum for the PID.",
344 "longDescription": "Integral limit maxiumum for the PID.",
345 "type": "number"
346 },
347 "ILimitMin": {
348 "description": "Integral limit miniumum for the PID.",
349 "longDescription": "Integral limit miniumum for the PID.",
350 "type": "number"
351 },
352 "Inputs": {
353 "description": "Input sensors to the PID controller.",
354 "items": {
355 "type": [
356 "string",
357 "null"
358 ]
359 },
360 "longDescription": "Input sensors to the PID controller.",
361 "type": "array"
362 },
363 "OutLimitMax": {
364 "description": "Output limit maxiumum for the pwm.",
365 "longDescription": "Output limit maxiumum for the pwm.",
366 "type": "number"
367 },
368 "OutLimitMin": {
369 "description": "Output limit minimum for the pwm.",
370 "longDescription": "Output limit minimum for the pwm.",
371 "type": "number"
372 },
373 "PCoefficient": {
374 "description": "Polynomial coefficent for the PID.",
375 "longDescription": "Polynomial coefficent for the PID.",
376 "type": "number"
377 },
378 "SlewNeg": {
379 "description": "Negative slew rate for the PID.",
380 "longDescription": "Negative slew rate for the PID.",
381 "type": "number"
382 },
383 "SlewPos": {
384 "description": "Positive slew rate for the PID.",
385 "longDescription": "Positive slew rate for the PID.",
386 "type": "number"
387 },
388 "Zones": {
389 "description": "Contains the Zones that this PID contributes to.",
390 "items": {
391 "$ref": "#/definitions/FanZone"
392 },
393 "readonly": true,
394 "type": "array"
395 },
396 "Zones@odata.count": {
397 "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
398 }
399 },
400 "type": "object"
401 },
402 "PidControllers": {
403 "additionalProperties": true,
404 "description": "OpenBmc PidControllers.",
405 "longDescription": "Container for OpenBmc pid controllers.",
406 "patternProperties": {
407 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
408 "description": "This property shall specify a valid odata or Redfish property.",
409 "type": [
410 "array",
411 "boolean",
412 "number",
413 "null",
414 "object",
415 "string"
416 ]
417 }
418 },
419 "properties": {},
420 "type": "object"
James Feistbaa5c142018-12-12 17:28:36 -0800421 },
422 "StepwiseController": {
423 "additionalProperties": false,
424 "description": "Configuration data for Stepwise Controllers.",
425 "patternProperties": {
426 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
427 "description": "This property shall specify a valid odata or Redfish property.",
428 "type": [
429 "array",
430 "boolean",
431 "number",
432 "null",
433 "object",
434 "string"
435 ]
436 }
437 },
438 "properties": {
439 "Inputs": {
440 "description": "Input sensors to the Stepwise controller.",
441 "items": {
442 "type": [
443 "string",
444 "null"
445 ]
446 },
447 "longDescription": "Input sensors to the Stepwise controller.",
448 "type": "array"
449 },
450 "NegativeHysteresis": {
451 "description": "Negative Hysteresis for the stepwise controller.",
452 "longDescription": "Negative Hysteresis for the stepwise controller.",
453 "type": "number"
454 },
455 "PositiveHysteresis": {
456 "description": "Positive Hysteresis for the stepwise controller.",
457 "longDescription": "Positive Hysteresis for the stepwise controller.",
458 "type": "number"
459 },
460 "Steps": {
461 "description": "Temperature vs RPM steps for the stepwise controller.",
462 "items": {
463 "anyOf": [
464 {
465 "$ref": "#/definitions/StepwiseSteps"
466 },
467 {
468 "type": "null"
469 }
470 ]
471 },
472 "longDescription": "Temperature vs RPM steps for the stepwise controller.",
473 "type": "array"
474 },
475 "Zones": {
476 "description": "Contains the Zones that this controller contributes to.",
477 "items": {
478 "$ref": "#/definitions/FanZone"
479 },
480 "readonly": true,
481 "type": "array"
482 },
483 "Zones@odata.count": {
484 "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/count"
485 }
486 },
487 "type": "object"
488 },
489 "StepwiseControllers": {
490 "additionalProperties": true,
491 "description": "OpenBmc StepwiseControllers.",
492 "longDescription": "Container for OpenBmc Stepwise controllers.",
493 "patternProperties": {
494 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
495 "description": "This property shall specify a valid odata or Redfish property.",
496 "type": [
497 "array",
498 "boolean",
499 "number",
500 "null",
501 "object",
502 "string"
503 ]
504 }
505 },
506 "properties": {},
507 "type": "object"
508 },
509 "StepwiseSteps": {
510 "additionalProperties": false,
511 "patternProperties": {
512 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
513 "description": "This property shall specify a valid odata or Redfish property.",
514 "type": [
515 "array",
516 "boolean",
517 "number",
518 "null",
519 "object",
520 "string"
521 ]
522 }
523 },
524 "properties": {
525 "Output": {
526 "description": "Fan speed setting for step.",
527 "longDescription": "Fan speed setting for step.",
528 "type": "number"
529 },
530 "Target": {
531 "description": "Input sensor reading for step.",
532 "longDescription": "Input sensor reading for step.",
533 "type": "number"
534 }
535 },
536 "type": "object"
James Feistaf996fe2018-09-14 16:02:44 -0700537 }
538 },
539 "title": "#OemManager"
James Feistbaa5c142018-12-12 17:28:36 -0800540}