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                            "BindConnector": {
155                                "type": "string"
156                            },
157                            "Index": {
158                                "type": "integer"
159                            },
160                            "Class": {
161                                "type": "string"
162                            },
163                            "FFGainCoefficient": {
164                                "type": "number"
165                            },
166                            "FFOffCoefficient": {
167                                "type": "number"
168                            },
169                            "ICoefficient": {
170                                "type": "number"
171                            },
172                            "ILimitMax": {
173                                "type": "number"
174                            },
175                            "ILimitMin": {
176                                "type": "number"
177                            },
178                            "Inputs": {
179                                "type": "array",
180                                "items": {
181                                    "type": "string"
182                                }
183                            },
184                            "OutLimitMax": {
185                                "type": "number"
186                            },
187                            "OutLimitMin": {
188                                "type": "number"
189                            },
190                            "Outputs": {
191                                "type": "array",
192                                "items": {
193                                    "type": "string"
194                                }
195                            },
196                            "PCoefficient": {
197                                "type": "number"
198                            },
199                            "SetPoint": {
200                                "type": "number"
201                            },
202                            "SlewNeg": {
203                                "type": "number"
204                            },
205                            "SlewPos": {
206                                "type": "number"
207                            },
208                            "Zones": {
209                                "type": "array",
210                                "items": {
211                                    "type": "string"
212                                }
213                            },
214                            "FailSafePercent": {
215                                "type": "integer"
216                            },
217                            "MinThermalRpm": {
218                                "type": "integer"
219                            },
220                            "present": {
221                                "type": "integer"
222                            },
223                            "Pwm": {
224                                "type": "integer"
225                            },
226                            "Status": {
227                                "type": "string"
228                            },
229                            "Tachs": {
230                                "type": "array",
231                                "items": {
232                                    "type": "integer"
233                                }
234                            },
235                            "Name1": {
236                                "type": "string"
237                            },
238                            "ScaleFactor": {
239                                "type": "number"
240                            },
241                            "CpuID": {
242                                "type": "integer"
243                            }
244                        },
245                        "required": [
246                            "Name",
247                            "Type"
248                        ]
249                    }
250                },
251                "Name": {
252                    "type": "string"
253                },
254                "Probe": {
255                    "anyOf": [
256                        {
257                            "type": "string"
258                        },
259                        {
260                            "type": "array",
261                            "items": {
262                                "type": "string"
263                            }
264                        }
265                    ]
266                },
267                "xyz.openbmc_project.Inventory.Decorator.Asset": {
268                    "type": "object",
269                    "properties": {
270                        "Manufacturer": {
271                            "type": "string"
272                        },
273                        "Model": {
274                            "type": "string"
275                        },
276                        "PartNumber": {
277                            "type": "string"
278                        },
279                        "SerialNumber": {
280                            "type": "string"
281                        }
282                    },
283                    "required": [
284                        "Manufacturer",
285                        "Model",
286                        "PartNumber",
287                        "SerialNumber"
288                    ]
289                },
290                "Type": {
291                    "type": "string"
292                }
293            },
294            "required": [
295                "Exposes",
296                "Name",
297                "Probe"
298            ]
299        }
300    ]
301}
302