1{
2    "$schema": "http://json-schema.org/draft-07/schema#",
3    "anyOf": [
4        {
5            "type": "array",
6            "items": {
7                "type": "object",
8                "properties": {
9                    "Exposes": {
10                        "type": "array",
11                        "items": {
12                            "type": "object",
13                            "properties": {
14                                "Address": {
15                                    "type": "string"
16                                },
17                                "Bus": {
18                                    "type": "string"
19                                },
20                                "Name": {
21                                    "type": "string"
22                                },
23                                "Type": {
24                                    "type": "string"
25                                },
26                                "ChannelNames": {
27                                    "type": "array",
28                                    "items": {
29                                        "type": "string"
30                                    }
31                                },
32                                "Class": {
33                                    "type": "string"
34                                },
35                                "FFGainCoefficient": {
36                                    "type": "number"
37                                },
38                                "FFOffCoefficient": {
39                                    "type": "number"
40                                },
41                                "ICoefficient": {
42                                    "type": "number"
43                                },
44                                "ILimitMax": {
45                                    "type": "number"
46                                },
47                                "ILimitMin": {
48                                    "type": "number"
49                                },
50                                "Inputs": {
51                                    "type": "array",
52                                    "items": {
53                                        "type": "string"
54                                    }
55                                },
56                                "NegativeHysteresis": {
57                                    "type": "number"
58                                },
59                                "OutLimitMax": {
60                                    "type": "number"
61                                },
62                                "OutLimitMin": {
63                                    "type": "number"
64                                },
65                                "Outputs": {
66                                    "type": "array",
67                                    "items": {
68                                        "type": "string"
69                                    }
70                                },
71                                "PCoefficient": {
72                                    "type": "number"
73                                },
74                                "PositiveHysteresis": {
75                                    "type": "number"
76                                },
77                                "SetPoint": {
78                                    "type": "number"
79                                },
80                                "SlewNeg": {
81                                    "type": "number"
82                                },
83                                "SlewPos": {
84                                    "type": "number"
85                                },
86                                "Zones": {
87                                    "type": "array",
88                                    "items": {
89                                        "type": "string"
90                                    }
91                                },
92                                "Thresholds": {
93                                    "type": "array",
94                                    "items": {
95                                        "type": "object",
96                                        "properties": {
97                                            "Direction": {
98                                                "type": "string"
99                                            },
100                                            "Name": {
101                                                "type": "string"
102                                            },
103                                            "Severity": {
104                                                "type": "number"
105                                            },
106                                            "Value": {
107                                                "type": "number"
108                                            },
109                                            "Label": {
110                                                "type": "string"
111                                            }
112                                        },
113                                        "required": [
114                                            "Direction",
115                                            "Name",
116                                            "Severity",
117                                            "Value"
118                                        ]
119                                    }
120                                },
121                                "Output": {
122                                    "type": "array",
123                                    "items": {
124                                        "type": "number"
125                                    }
126                                },
127                                "Reading": {
128                                    "type": "array",
129                                    "items": {
130                                        "type": "number"
131                                    }
132                                },
133                                "Labels": {
134                                    "type": "array",
135                                    "items": {
136                                        "type": "string"
137                                    }
138                                }
139                            },
140                            "required": [
141                                "Name",
142                                "Type"
143                            ]
144                        }
145                    },
146                    "Name": {
147                        "type": "string"
148                    },
149                    "Probe": {
150                        "type": "string"
151                    },
152                    "Type": {
153                        "type": "string"
154                    },
155                    "xyz.openbmc_project.Inventory.Decorator.Asset": {
156                        "type": "object",
157                        "properties": {
158                            "Manufacturer": {
159                                "type": "string"
160                            },
161                            "Model": {
162                                "type": "string"
163                            },
164                            "PartNumber": {
165                                "type": "string"
166                            },
167                            "SerialNumber": {
168                                "type": "string"
169                            }
170                        },
171                        "required": [
172                            "Manufacturer",
173                            "Model",
174                            "PartNumber",
175                            "SerialNumber"
176                        ]
177                    }
178                },
179                "required": [
180                    "Exposes",
181                    "Name",
182                    "Probe",
183                    "xyz.openbmc_project.Inventory.Decorator.Asset"
184                ]
185            }
186        },
187        {
188            "type": "object",
189            "properties": {
190                "Exposes": {
191                    "type": "array",
192                    "items": {
193                        "type": "object",
194                        "properties": {
195                            "Address": {
196                                "type": "string"
197                            },
198                            "Name": {
199                                "type": "string"
200                            },
201                            "Type": {
202                                "type": "string"
203                            },
204                            "Bus": {
205                                "type": [
206                                    "number",
207                                    "string"
208                                ]
209                            },
210                            "ChannelNames": {
211                                "type": "array",
212                                "items": {
213                                    "type": "string"
214                                }
215                            },
216                            "Class": {
217                                "type": "string"
218                            },
219                            "FFGainCoefficient": {
220                                "type": "number"
221                            },
222                            "FFOffCoefficient": {
223                                "type": "number"
224                            },
225                            "ICoefficient": {
226                                "type": "number"
227                            },
228                            "ILimitMax": {
229                                "type": "number"
230                            },
231                            "ILimitMin": {
232                                "type": "number"
233                            },
234                            "Inputs": {
235                                "type": "array",
236                                "items": {
237                                    "type": "string"
238                                }
239                            },
240                            "OutLimitMax": {
241                                "type": "number"
242                            },
243                            "OutLimitMin": {
244                                "type": "number"
245                            },
246                            "Outputs": {
247                                "type": "array",
248                                "items": {
249                                    "type": "string"
250                                }
251                            },
252                            "PCoefficient": {
253                                "type": "number"
254                            },
255                            "SetPoint": {
256                                "type": "number"
257                            },
258                            "SlewNeg": {
259                                "type": "number"
260                            },
261                            "SlewPos": {
262                                "type": "number"
263                            },
264                            "Zones": {
265                                "type": "array",
266                                "items": {
267                                    "type": "string"
268                                }
269                            },
270                            "Thresholds": {
271                                "type": "array",
272                                "items": {
273                                    "type": "object",
274                                    "properties": {
275                                        "Direction": {
276                                            "type": "string"
277                                        },
278                                        "Name": {
279                                            "type": "string"
280                                        },
281                                        "Severity": {
282                                            "type": "number"
283                                        },
284                                        "Value": {
285                                            "type": "number"
286                                        },
287                                        "Label": {
288                                            "type": "string"
289                                        }
290                                    },
291                                    "required": [
292                                        "Direction",
293                                        "Name",
294                                        "Severity",
295                                        "Value"
296                                    ]
297                                }
298                            },
299                            "Direction": {
300                                "type": "string"
301                            },
302                            "Index": {
303                                "type": "number"
304                            },
305                            "Polarity": {
306                                "type": "string"
307                            },
308                            "GpioPins": {
309                                "type": "array",
310                                "items": {
311                                    "type": "number"
312                                }
313                            },
314                            "ScaleFactor": {
315                                "type": "number"
316                            },
317                            "Connector": {
318                                "type": "object",
319                                "properties": {
320                                    "Name": {
321                                        "type": "string"
322                                    },
323                                    "Pwm": {
324                                        "type": "number"
325                                    },
326                                    "Tachs": {
327                                        "type": "array",
328                                        "items": {
329                                            "type": "number"
330                                        }
331                                    }
332                                },
333                                "required": [
334                                    "Name",
335                                    "Pwm",
336                                    "Tachs"
337                                ]
338                            },
339                            "FailSafePercent": {
340                                "type": "number"
341                            },
342                            "MinThermalOutput": {
343                                "type": "number"
344                            },
345                            "NegativeHysteresis": {
346                                "type": "number"
347                            },
348                            "Output": {
349                                "type": "array",
350                                "items": {
351                                    "type": "number"
352                                }
353                            },
354                            "PositiveHysteresis": {
355                                "type": "number"
356                            },
357                            "Reading": {
358                                "type": "array",
359                                "items": {
360                                    "type": "number"
361                                }
362                            },
363                            "Name1": {
364                                "type": "string"
365                            },
366                            "Labels": {
367                                "type": "array",
368                                "items": {
369                                    "type": "string"
370                                }
371                            },
372                            "CpuID": {
373                                "type": "number"
374                            },
375                            "DtsCritOffset": {
376                                "type": "number"
377                            },
378                            "BindConnector": {
379                                "type": "string"
380                            },
381                            "C1": {
382                                "type": "number"
383                            },
384                            "C2": {
385                                "type": "number"
386                            },
387                            "MaxCFM": {
388                                "type": "number"
389                            },
390                            "TachMaxPercent": {
391                                "type": "number"
392                            },
393                            "TachMinPercent": {
394                                "type": "number"
395                            },
396                            "Tachs": {
397                                "type": "array",
398                                "items": {
399                                    "type": [
400                                        "number",
401                                        "string"
402                                    ]
403                                }
404                            },
405                            "AlphaF": {
406                                "type": "number"
407                            },
408                            "AlphaS": {
409                                "type": "number"
410                            },
411                            "PowerFactorMax": {
412                                "type": "number"
413                            },
414                            "PowerFactorMin": {
415                                "type": "number"
416                            },
417                            "QMax": {
418                                "type": "number"
419                            },
420                            "QMin": {
421                                "type": "number"
422                            },
423                            "AllowedFailures": {
424                                "type": "number"
425                            },
426                            "Profiles": {
427                                "type": "array",
428                                "items": {
429                                    "type": "string"
430                                }
431                            },
432                            "BindPresence": {
433                                "type": "string"
434                            },
435                            "MaxReading": {
436                                "type": "number"
437                            },
438                            "PowerState": {
439                                "type": "string"
440                            },
441                            "BridgeGpio": {
442                                "type": "number"
443                            },
444                            "Status": {
445                                "type": "string"
446                            },
447                            "Pwm": {
448                                "type": "number"
449                            },
450                            "FaultIndex": {
451                                "type": "number"
452                            },
453                            "FaultType": {
454                                "type": "string"
455                            },
456                            "LedGpioPins": {
457                                "type": "array",
458                                "items": {
459                                    "type": "number"
460                                }
461                            },
462                            "SetPointOffset": {
463                                "type": "string"
464                            },
465                            "PresenceGpio": {
466                                "type": "number"
467                            }
468                        },
469                        "required": [
470                            "Name",
471                            "Type"
472                        ]
473                    }
474                },
475                "Name": {
476                    "type": "string"
477                },
478                "Probe": {
479                    "anyOf": [
480                        {
481                            "type": "string"
482                        },
483                        {
484                            "type": "array",
485                            "items": {
486                                "type": "string"
487                            }
488                        }
489                    ]
490                },
491                "Type": {
492                    "type": "string"
493                },
494                "xyz.openbmc_project.Inventory.Decorator.Asset": {
495                    "type": "object",
496                    "properties": {
497                        "Manufacturer": {
498                            "type": "string"
499                        },
500                        "Model": {
501                            "type": "string"
502                        },
503                        "PartNumber": {
504                            "type": "string"
505                        },
506                        "SerialNumber": {
507                            "type": "string"
508                        }
509                    },
510                    "required": [
511                        "Manufacturer",
512                        "Model",
513                        "PartNumber",
514                        "SerialNumber"
515                    ]
516                },
517                "ProductId": {
518                    "type": "number"
519                },
520                "xyz.openbmc_project.Inventory.Decorator.AssetTag": {
521                    "type": "object",
522                    "properties": {
523                        "AssetTag": {
524                            "type": "string"
525                        }
526                    },
527                    "required": [
528                        "AssetTag"
529                    ]
530                },
531                "xyz.openbmc_project.Inventory.Item.System": {
532                    "type": "object"
533                }
534            },
535            "required": [
536                "Exposes",
537                "Name",
538                "Probe"
539            ]
540        }
541    ]
542}
543