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                        },
317                        "required": [
318                            "Name",
319                            "Type"
320                        ]
321                    }
322                },
323                "Name": {
324                    "type": "string"
325                },
326                "Probe": {
327                    "anyOf": [
328                        {
329                            "type": "string"
330                        },
331                        {
332                            "type": "array",
333                            "items": {
334                                "type": "string"
335                            }
336                        }
337                    ]
338                },
339                "xyz.openbmc_project.Inventory.Decorator.Asset": {
340                    "type": "object",
341                    "properties": {
342                        "Manufacturer": {
343                            "type": "string"
344                        },
345                        "Model": {
346                            "type": "string"
347                        },
348                        "PartNumber": {
349                            "type": "string"
350                        },
351                        "SerialNumber": {
352                            "type": "string"
353                        }
354                    },
355                    "required": [
356                        "Manufacturer",
357                        "Model",
358                        "PartNumber",
359                        "SerialNumber"
360                    ]
361                },
362                "Type": {
363                    "type": "string"
364                }
365            },
366            "required": [
367                "Exposes",
368                "Name",
369                "Probe"
370            ]
371        }
372    ]
373}
374