1{
2    "$schema": "http://json-schema.org/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                                "Thresholds": {
24                                    "type": "array",
25                                    "items": {
26                                        "type": "object",
27                                        "properties": {
28                                            "Direction": {
29                                                "type": "string"
30                                            },
31                                            "Name": {
32                                                "type": "string"
33                                            },
34                                            "Severity": {
35                                                "type": "integer"
36                                            },
37                                            "Value": {
38                                                "type": "integer"
39                                            }
40                                        },
41                                        "required": [
42                                            "Direction",
43                                            "Name",
44                                            "Severity",
45                                            "Value"
46                                        ]
47                                    }
48                                },
49                                "Type": {
50                                    "type": "string"
51                                }
52                            },
53                            "required": [
54                                "Address",
55                                "Bus",
56                                "Name",
57                                "Type"
58                            ]
59                        }
60                    },
61                    "Name": {
62                        "type": "string"
63                    },
64                    "Probe": {
65                        "type": "string"
66                    },
67                    "xyz.openbmc_project.Inventory.Decorator.Asset": {
68                        "type": "object",
69                        "properties": {
70                            "Manufacturer": {
71                                "type": "string"
72                            },
73                            "Model": {
74                                "type": "string"
75                            },
76                            "PartNumber": {
77                                "type": "string"
78                            },
79                            "SerialNumber": {
80                                "type": "string"
81                            }
82                        },
83                        "required": [
84                            "Manufacturer",
85                            "Model",
86                            "PartNumber",
87                            "SerialNumber"
88                        ]
89                    },
90                    "Type": {
91                        "type": "string"
92                    }
93                },
94                "required": [
95                    "Exposes",
96                    "Name",
97                    "Probe",
98                    "xyz.openbmc_project.Inventory.Decorator.Asset"
99                ]
100            }
101        },
102        {
103            "type": "object",
104            "properties": {
105                "Exposes": {
106                    "type": "array",
107                    "items": {
108                        "type": "object",
109                        "properties": {
110                            "Address": {
111                                "type": "string"
112                            },
113                            "Name": {
114                                "type": "string"
115                            },
116                            "Type": {
117                                "type": "string"
118                            },
119                            "Bus": {
120                                "type": [
121                                    "integer",
122                                    "string"
123                                ]
124                            },
125                            "Thresholds": {
126                                "type": "array",
127                                "items": {
128                                    "type": "object",
129                                    "properties": {
130                                        "Direction": {
131                                            "type": "string"
132                                        },
133                                        "Name": {
134                                            "type": "string"
135                                        },
136                                        "Severity": {
137                                            "type": "integer"
138                                        },
139                                        "Value": {
140                                            "type": "number"
141                                        },
142                                        "Label": {
143                                            "type": "string"
144                                        }
145                                    },
146                                    "required": [
147                                        "Direction",
148                                        "Name",
149                                        "Severity",
150                                        "Value"
151                                    ]
152                                }
153                            },
154                            "Inputs": {
155                                "type": "array",
156                                "items": {
157                                    "type": "string"
158                                }
159                            },
160                            "NegativeHysteresis": {
161                                "type": "integer"
162                            },
163                            "Output": {
164                                "type": "array",
165                                "items": {
166                                    "type": "number"
167                                }
168                            },
169                            "PositiveHysteresis": {
170                                "type": "integer"
171                            },
172                            "Reading": {
173                                "type": "array",
174                                "items": {
175                                    "type": "number"
176                                }
177                            },
178                            "Zones": {
179                                "type": "array",
180                                "items": {
181                                    "type": "string"
182                                }
183                            },
184                            "BindConnector": {
185                                "type": "string"
186                            },
187                            "Index": {
188                                "type": "integer"
189                            },
190                            "MaxReading": {
191                                "type": "integer"
192                            },
193                            "Class": {
194                                "type": "string"
195                            },
196                            "FFGainCoefficient": {
197                                "type": "number"
198                            },
199                            "FFOffCoefficient": {
200                                "type": "number"
201                            },
202                            "ICoefficient": {
203                                "type": "number"
204                            },
205                            "ILimitMax": {
206                                "type": "number"
207                            },
208                            "ILimitMin": {
209                                "type": "number"
210                            },
211                            "OutLimitMax": {
212                                "type": "number"
213                            },
214                            "OutLimitMin": {
215                                "type": "number"
216                            },
217                            "Outputs": {
218                                "type": "array",
219                                "items": {
220                                    "type": "string"
221                                }
222                            },
223                            "PCoefficient": {
224                                "type": "number"
225                            },
226                            "SlewNeg": {
227                                "type": "number"
228                            },
229                            "SlewPos": {
230                                "type": "number"
231                            },
232                            "FailSafePercent": {
233                                "type": "integer"
234                            },
235                            "MinThermalOutput": {
236                                "type": "integer"
237                            },
238                            "AllowedFailures": {
239                                "type": "integer"
240                            },
241                            "PowerState": {
242                                "type": "string"
243                            },
244                            "AlphaF": {
245                                "type": "number"
246                            },
247                            "AlphaS": {
248                                "type": "number"
249                            },
250                            "PowerFactorMax": {
251                                "type": "number"
252                            },
253                            "PowerFactorMin": {
254                                "type": "number"
255                            },
256                            "QMax": {
257                                "type": "number"
258                            },
259                            "QMin": {
260                                "type": "number"
261                            },
262                            "C1": {
263                                "type": "number"
264                            },
265                            "C2": {
266                                "type": "number"
267                            },
268                            "MaxCFM": {
269                                "type": "number"
270                            },
271                            "TachMaxPercent": {
272                                "type": "number"
273                            },
274                            "TachMinPercent": {
275                                "type": "number"
276                            },
277                            "Tachs": {
278                                "type": "array",
279                                "items": {
280                                    "type": [
281                                        "integer",
282                                        "string"
283                                    ]
284                                }
285                            },
286                            "BindPresence": {
287                                "type": "string"
288                            },
289                            "Pwm": {
290                                "type": "integer"
291                            },
292                            "Status": {
293                                "type": "string"
294                            },
295                            "Name1": {
296                                "type": "string"
297                            },
298                            "ScaleFactor": {
299                                "type": "number"
300                            },
301                            "CpuID": {
302                                "type": "integer"
303                            },
304                            "SetPoint": {
305                                "type": "number"
306                            },
307                            "Direction": {
308                                "type": "string"
309                            },
310                            "Polarity": {
311                                "type": "string"
312                            },
313                            "BindGpioIntrusion": {
314                                "type": "string"
315                            },
316                            "BridgeGpio": {
317                                "type": "integer"
318                            },
319                            "FaultType": {
320                                "type": "string"
321                            },
322                            "FaultIndex": {
323                                "type": "integer"
324                            },
325                            "LedGpioIndexs": {
326                                "type": "array",
327                                "items": {
328                                    "type": "integer"
329                                }
330                            }
331                        },
332                        "required": [
333                            "Name",
334                            "Type"
335                        ]
336                    }
337                },
338                "Name": {
339                    "type": "string"
340                },
341                "Probe": {
342                    "anyOf": [
343                        {
344                            "type": "string"
345                        },
346                        {
347                            "type": "array",
348                            "items": {
349                                "type": "string"
350                            }
351                        }
352                    ]
353                },
354                "xyz.openbmc_project.Inventory.Decorator.Asset": {
355                    "type": "object",
356                    "properties": {
357                        "Manufacturer": {
358                            "type": "string"
359                        },
360                        "Model": {
361                            "type": "string"
362                        },
363                        "PartNumber": {
364                            "type": "string"
365                        },
366                        "SerialNumber": {
367                            "type": "string"
368                        }
369                    },
370                    "required": [
371                        "Manufacturer",
372                        "Model",
373                        "PartNumber",
374                        "SerialNumber"
375                    ]
376                },
377                "Type": {
378                    "type": "string"
379                }
380            },
381            "required": [
382                "Exposes",
383                "Name",
384                "Probe"
385            ]
386        }
387    ]
388}
389