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