{
    "$schema": "http://json-schema.org/schema#",
    "anyOf": [
        {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "Exposes": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "Address": {
                                    "type": "string"
                                },
                                "Bus": {
                                    "type": "string"
                                },
                                "Name": {
                                    "type": "string"
                                },
                                "Thresholds": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "Direction": {
                                                "type": "string"
                                            },
                                            "Name": {
                                                "type": "string"
                                            },
                                            "Severity": {
                                                "type": "integer"
                                            },
                                            "Value": {
                                                "type": "integer"
                                            }
                                        },
                                        "required": [
                                            "Direction",
                                            "Name",
                                            "Severity",
                                            "Value"
                                        ]
                                    }
                                },
                                "Type": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "Address",
                                "Bus",
                                "Name",
                                "Type"
                            ]
                        }
                    },
                    "Name": {
                        "type": "string"
                    },
                    "Probe": {
                        "type": "string"
                    },
                    "xyz.openbmc_project.Inventory.Decorator.Asset": {
                        "type": "object",
                        "properties": {
                            "Manufacturer": {
                                "type": "string"
                            },
                            "Model": {
                                "type": "string"
                            },
                            "PartNumber": {
                                "type": "string"
                            },
                            "SerialNumber": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "Manufacturer",
                            "Model",
                            "PartNumber",
                            "SerialNumber"
                        ]
                    },
                    "Type": {
                        "type": "string"
                    }
                },
                "required": [
                    "Exposes",
                    "Name",
                    "Probe",
                    "xyz.openbmc_project.Inventory.Decorator.Asset"
                ]
            }
        },
        {
            "type": "object",
            "properties": {
                "Exposes": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "Address": {
                                "type": "string"
                            },
                            "Name": {
                                "type": "string"
                            },
                            "Type": {
                                "type": "string"
                            },
                            "Bus": {
                                "type": [
                                    "integer",
                                    "string"
                                ]
                            },
                            "Thresholds": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "properties": {
                                        "Direction": {
                                            "type": "string"
                                        },
                                        "Name": {
                                            "type": "string"
                                        },
                                        "Severity": {
                                            "type": "integer"
                                        },
                                        "Value": {
                                            "type": "number"
                                        },
                                        "Label": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "Direction",
                                        "Name",
                                        "Severity",
                                        "Value"
                                    ]
                                }
                            },
                            "Inputs": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "NegativeHysteresis": {
                                "type": "integer"
                            },
                            "Output": {
                                "type": "array",
                                "items": {
                                    "type": "number"
                                }
                            },
                            "PositiveHysteresis": {
                                "type": "integer"
                            },
                            "Reading": {
                                "type": "array",
                                "items": {
                                    "type": "number"
                                }
                            },
                            "Zones": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "BindConnector": {
                                "type": "string"
                            },
                            "Index": {
                                "type": "integer"
                            },
                            "MaxReading": {
                                "type": "integer"
                            },
                            "Class": {
                                "type": "string"
                            },
                            "FFGainCoefficient": {
                                "type": "number"
                            },
                            "FFOffCoefficient": {
                                "type": "number"
                            },
                            "ICoefficient": {
                                "type": "number"
                            },
                            "ILimitMax": {
                                "type": "number"
                            },
                            "ILimitMin": {
                                "type": "number"
                            },
                            "OutLimitMax": {
                                "type": "number"
                            },
                            "OutLimitMin": {
                                "type": "number"
                            },
                            "Outputs": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "PCoefficient": {
                                "type": "number"
                            },
                            "SlewNeg": {
                                "type": "number"
                            },
                            "SlewPos": {
                                "type": "number"
                            },
                            "FailSafePercent": {
                                "type": "integer"
                            },
                            "MinThermalRpm": {
                                "type": "integer"
                            },
                            "Count": {
                                "type": "integer"
                            },
                            "PowerState": {
                                "type": "string"
                            },
                            "BindPresence": {
                                "type": "string"
                            },
                            "Pwm": {
                                "type": "integer"
                            },
                            "Status": {
                                "type": "string"
                            },
                            "Tachs": {
                                "type": "array",
                                "items": {
                                    "type": "integer"
                                }
                            },
                            "Name1": {
                                "type": "string"
                            },
                            "ScaleFactor": {
                                "type": "number"
                            },
                            "CpuID": {
                                "type": "integer"
                            },
                            "SetPoint": {
                                "type": "number"
                            },
                            "Direction": {
                                "type": "string"
                            },
                            "Polarity": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "Name",
                            "Type"
                        ]
                    }
                },
                "Name": {
                    "type": "string"
                },
                "Probe": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    ]
                },
                "xyz.openbmc_project.Inventory.Decorator.Asset": {
                    "type": "object",
                    "properties": {
                        "Manufacturer": {
                            "type": "string"
                        },
                        "Model": {
                            "type": "string"
                        },
                        "PartNumber": {
                            "type": "string"
                        },
                        "SerialNumber": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "Manufacturer",
                        "Model",
                        "PartNumber",
                        "SerialNumber"
                    ]
                },
                "Type": {
                    "type": "string"
                }
            },
            "required": [
                "Exposes",
                "Name",
                "Probe"
            ]
        }
    ]
}