xref: /openbmc/entity-manager/schemas/topology.json (revision f850ecad00900a9d338950e28506c04af42b8883)
14a6f4057SOliver Brewka{
24a6f4057SOliver Brewka    "$schema": "http://json-schema.org/draft-07/schema#",
34a6f4057SOliver Brewka    "$defs": {
44a6f4057SOliver Brewka        "Port": {
54a6f4057SOliver Brewka            "description": "https://github.com/openbmc/docs/blob/master/designs/physical-topology.md",
64a6f4057SOliver Brewka            "additionalProperties": false,
74a6f4057SOliver Brewka            "properties": {
84a6f4057SOliver Brewka                "Name": {
94a6f4057SOliver Brewka                    "$ref": "#/$defs/Types/Name"
104a6f4057SOliver Brewka                },
11*f850ecadSAlexander Hansen                "PortType": {
12*f850ecadSAlexander Hansen                    "description": "This enum may be extended as described in the design",
13*f850ecadSAlexander Hansen                    "type": "string",
14*f850ecadSAlexander Hansen                    "enum": [
15*f850ecadSAlexander Hansen                        "powering",
16*f850ecadSAlexander Hansen                        "powered_by",
17*f850ecadSAlexander Hansen                        "cooling",
18*f850ecadSAlexander Hansen                        "cooled_by",
19*f850ecadSAlexander Hansen                        "containing",
20*f850ecadSAlexander Hansen                        "contained_by"
21*f850ecadSAlexander Hansen                    ]
22*f850ecadSAlexander Hansen                },
23*f850ecadSAlexander Hansen                "Type": {
24*f850ecadSAlexander Hansen                    "type": "string",
25*f850ecadSAlexander Hansen                    "const": "Port"
26*f850ecadSAlexander Hansen                }
27*f850ecadSAlexander Hansen            },
28*f850ecadSAlexander Hansen            "required": ["Name", "PortType", "Type"],
29*f850ecadSAlexander Hansen            "type": "object"
30*f850ecadSAlexander Hansen        },
31*f850ecadSAlexander Hansen        "LegacyPort": {
32*f850ecadSAlexander Hansen            "description": "deprecated schema. https://github.com/openbmc/docs/blob/master/designs/physical-topology.md",
33*f850ecadSAlexander Hansen            "additionalProperties": false,
34*f850ecadSAlexander Hansen            "properties": {
35*f850ecadSAlexander Hansen                "Name": {
36*f850ecadSAlexander Hansen                    "$ref": "#/$defs/Types/Name"
37*f850ecadSAlexander Hansen                },
384a6f4057SOliver Brewka                "Type": {
394a6f4057SOliver Brewka                    "description": "This enum may be extended as described in the design",
404a6f4057SOliver Brewka                    "type": "string",
4122f5312dSAlexander Hansen                    "enum": ["MB Upstream Port", "BackplanePort"]
424a6f4057SOliver Brewka                }
434a6f4057SOliver Brewka            },
444a6f4057SOliver Brewka            "required": ["Name", "Type"],
454a6f4057SOliver Brewka            "type": "object"
464a6f4057SOliver Brewka        },
47*f850ecadSAlexander Hansen        "LegacyDownstreamPort": {
48*f850ecadSAlexander Hansen            "description": "deprecated schema. https://github.com/openbmc/docs/blob/master/designs/physical-topology.md",
494a6f4057SOliver Brewka            "additionalProperties": false,
504a6f4057SOliver Brewka            "properties": {
514a6f4057SOliver Brewka                "Name": {
524a6f4057SOliver Brewka                    "$ref": "#/$defs/Types/Name"
534a6f4057SOliver Brewka                },
544a6f4057SOliver Brewka                "ConnectsToType": {
554a6f4057SOliver Brewka                    "description": "Should be equal to the 'Type' property on the upstream port",
5681f1ad48SOliver Brewka                    "type": "string",
5722f5312dSAlexander Hansen                    "enum": ["MB Upstream Port", "BackplanePort"]
584a6f4057SOliver Brewka                },
594a6f4057SOliver Brewka                "PowerPort": {
6081f1ad48SOliver Brewka                    "type": "boolean"
614a6f4057SOliver Brewka                },
624a6f4057SOliver Brewka                "Type": {
634a6f4057SOliver Brewka                    "type": "string",
644a6f4057SOliver Brewka                    "const": "DownstreamPort"
654a6f4057SOliver Brewka                }
664a6f4057SOliver Brewka            },
674a6f4057SOliver Brewka            "required": ["Name", "Type", "ConnectsToType"],
684a6f4057SOliver Brewka            "type": "object"
694a6f4057SOliver Brewka        },
704a6f4057SOliver Brewka        "Types": {
714a6f4057SOliver Brewka            "Name": {
724a6f4057SOliver Brewka                "type": "string"
734a6f4057SOliver Brewka            }
744a6f4057SOliver Brewka        }
754a6f4057SOliver Brewka    }
764a6f4057SOliver Brewka}
77