{
    "type": "object",
    "$id": "urn:devicetype-library:generated-schema",
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "additionalProperties": false,
    "definitions": {
        "airflow": {
            "type": "string",
            "enum": [
                "front-to-rear",
                "rear-to-front",
                "left-to-right",
                "right-to-left",
                "side-to-rear",
                "rear-to-side",
                "bottom-to-top",
                "top-to-bottom",
                "passive",
                "mixed"
            ]
        },
        "weight-unit": {
            "type": "string",
            "enum": [
                "kg",
                "g",
                "lb",
                "oz"
            ]
        },
        "subdevice-role": {
            "type": "string",
            "enum": [
                "parent",
                "child"
            ]
        },
        "console-port": {
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "de-9",
                        "db-25",
                        "rj-11",
                        "rj-12",
                        "rj-45",
                        "mini-din-8",
                        "usb-a",
                        "usb-b",
                        "usb-c",
                        "usb-mini-a",
                        "usb-mini-b",
                        "usb-micro-a",
                        "usb-micro-b",
                        "usb-micro-ab",
                        "other"
                    ]
                }
            }
        },
        "console-server-port": {
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "de-9",
                        "db-25",
                        "rj-11",
                        "rj-12",
                        "rj-45",
                        "mini-din-8",
                        "usb-a",
                        "usb-b",
                        "usb-c",
                        "usb-mini-a",
                        "usb-mini-b",
                        "usb-micro-a",
                        "usb-micro-b",
                        "usb-micro-ab",
                        "other"
                    ]
                }
            }
        },
        "power-port": {
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "iec-60320-c6",
                        "iec-60320-c8",
                        "iec-60320-c14",
                        "iec-60320-c16",
                        "iec-60320-c18",
                        "iec-60320-c20",
                        "iec-60320-c22",
                        "iec-60309-p-n-e-4h",
                        "iec-60309-p-n-e-6h",
                        "iec-60309-p-n-e-9h",
                        "iec-60309-2p-e-4h",
                        "iec-60309-2p-e-6h",
                        "iec-60309-2p-e-9h",
                        "iec-60309-3p-e-4h",
                        "iec-60309-3p-e-6h",
                        "iec-60309-3p-e-9h",
                        "iec-60309-3p-n-e-4h",
                        "iec-60309-3p-n-e-6h",
                        "iec-60309-3p-n-e-9h",
                        "iec-60906-1",
                        "nbr-14136-10a",
                        "nbr-14136-20a",
                        "nema-1-15p",
                        "nema-5-15p",
                        "nema-5-20p",
                        "nema-5-30p",
                        "nema-5-50p",
                        "nema-6-15p",
                        "nema-6-20p",
                        "nema-6-30p",
                        "nema-6-50p",
                        "nema-10-30p",
                        "nema-10-50p",
                        "nema-14-20p",
                        "nema-14-30p",
                        "nema-14-50p",
                        "nema-14-60p",
                        "nema-15-15p",
                        "nema-15-20p",
                        "nema-15-30p",
                        "nema-15-50p",
                        "nema-15-60p",
                        "nema-l1-15p",
                        "nema-l5-15p",
                        "nema-l5-20p",
                        "nema-l5-30p",
                        "nema-l5-50p",
                        "nema-l6-15p",
                        "nema-l6-20p",
                        "nema-l6-30p",
                        "nema-l6-50p",
                        "nema-l10-30p",
                        "nema-l14-20p",
                        "nema-l14-30p",
                        "nema-l14-50p",
                        "nema-l14-60p",
                        "nema-l15-20p",
                        "nema-l15-30p",
                        "nema-l15-50p",
                        "nema-l15-60p",
                        "nema-l21-20p",
                        "nema-l21-30p",
                        "nema-l22-20p",
                        "nema-l22-30p",
                        "cs6361c",
                        "cs6365c",
                        "cs8165c",
                        "cs8265c",
                        "cs8365c",
                        "cs8465c",
                        "ita-c",
                        "ita-e",
                        "ita-f",
                        "ita-ef",
                        "ita-g",
                        "ita-h",
                        "ita-i",
                        "ita-j",
                        "ita-k",
                        "ita-l",
                        "ita-m",
                        "ita-n",
                        "ita-o",
                        "usb-a",
                        "usb-b",
                        "usb-c",
                        "usb-mini-a",
                        "usb-mini-b",
                        "usb-micro-a",
                        "usb-micro-b",
                        "usb-micro-ab",
                        "usb-3-b",
                        "usb-3-micro-b",
                        "molex-micro-fit-1x2",
                        "molex-micro-fit-2x2",
                        "molex-micro-fit-2x3",
                        "molex-micro-fit-2x4",
                        "dc-terminal",
                        "saf-d-grid",
                        "neutrik-powercon-20",
                        "neutrik-powercon-32",
                        "neutrik-powercon-true1",
                        "neutrik-powercon-true1-top",
                        "ubiquiti-smartpower",
                        "hardwired",
                        "other"
                    ]
                }
            }
        },
        "power-outlet": {
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "iec-60320-c5",
                        "iec-60320-c7",
                        "iec-60320-c13",
                        "iec-60320-c15",
                        "iec-60320-c17",
                        "iec-60320-c19",
                        "iec-60320-c21",
                        "iec-60309-p-n-e-4h",
                        "iec-60309-p-n-e-6h",
                        "iec-60309-p-n-e-9h",
                        "iec-60309-2p-e-4h",
                        "iec-60309-2p-e-6h",
                        "iec-60309-2p-e-9h",
                        "iec-60309-3p-e-4h",
                        "iec-60309-3p-e-6h",
                        "iec-60309-3p-e-9h",
                        "iec-60309-3p-n-e-4h",
                        "iec-60309-3p-n-e-6h",
                        "iec-60309-3p-n-e-9h",
                        "iec-60906-1",
                        "nbr-14136-10a",
                        "nbr-14136-20a",
                        "nema-1-15r",
                        "nema-5-15r",
                        "nema-5-20r",
                        "nema-5-30r",
                        "nema-5-50r",
                        "nema-6-15r",
                        "nema-6-20r",
                        "nema-6-30r",
                        "nema-6-50r",
                        "nema-10-30r",
                        "nema-10-50r",
                        "nema-14-20r",
                        "nema-14-30r",
                        "nema-14-50r",
                        "nema-14-60r",
                        "nema-15-15r",
                        "nema-15-20r",
                        "nema-15-30r",
                        "nema-15-50r",
                        "nema-15-60r",
                        "nema-l1-15r",
                        "nema-l5-15r",
                        "nema-l5-20r",
                        "nema-l5-30r",
                        "nema-l5-50r",
                        "nema-l6-15r",
                        "nema-l6-20r",
                        "nema-l6-30r",
                        "nema-l6-50r",
                        "nema-l10-30r",
                        "nema-l14-20r",
                        "nema-l14-30r",
                        "nema-l14-50r",
                        "nema-l14-60r",
                        "nema-l15-20r",
                        "nema-l15-30r",
                        "nema-l15-50r",
                        "nema-l15-60r",
                        "nema-l21-20r",
                        "nema-l21-30r",
                        "nema-l22-20r",
                        "nema-l22-30r",
                        "CS6360C",
                        "CS6364C",
                        "CS8164C",
                        "CS8264C",
                        "CS8364C",
                        "CS8464C",
                        "ita-e",
                        "ita-f",
                        "ita-g",
                        "ita-h",
                        "ita-i",
                        "ita-j",
                        "ita-k",
                        "ita-l",
                        "ita-m",
                        "ita-n",
                        "ita-o",
                        "ita-multistandard",
                        "usb-a",
                        "usb-micro-b",
                        "usb-c",
                        "molex-micro-fit-1x2",
                        "molex-micro-fit-2x2",
                        "molex-micro-fit-2x3",
                        "molex-micro-fit-2x4",
                        "dc-terminal",
                        "eaton-c39",
                        "hdot-cx",
                        "saf-d-grid",
                        "neutrik-powercon-20a",
                        "neutrik-powercon-32a",
                        "neutrik-powercon-true1",
                        "neutrik-powercon-true1-top",
                        "ubiquiti-smartpower",
                        "hardwired",
                        "other"
                    ]
                },
                "feed-leg": {
                    "type": "string",
                    "enum": [
                        "A",
                        "B",
                        "C"
                    ]
                }
            }
        },
        "interface": {
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "virtual",
                        "bridge",
                        "lag",
                        "100base-fx",
                        "100base-lfx",
                        "100base-tx",
                        "100base-t1",
                        "1000base-bx10-d",
                        "1000base-bx10-u",
                        "1000base-cwdm",
                        "1000base-cx",
                        "1000base-dwdm",
                        "1000base-ex",
                        "1000base-lsx",
                        "1000base-lx",
                        "1000base-lx10",
                        "1000base-sx",
                        "1000base-t",
                        "1000base-tx",
                        "1000base-zx",
                        "2.5gbase-t",
                        "5gbase-t",
                        "10gbase-br-d",
                        "10gbase-br-u",
                        "10gbase-cx4",
                        "10gbase-er",
                        "10gbase-lr",
                        "10gbase-lrm",
                        "10gbase-lx4",
                        "10gbase-sr",
                        "10gbase-t",
                        "10gbase-zr",
                        "25gbase-cr",
                        "25gbase-er",
                        "25gbase-lr",
                        "25gbase-sr",
                        "25gbase-t",
                        "40gbase-cr4",
                        "40gbase-er4",
                        "40gbase-fr4",
                        "40gbase-lr4",
                        "40gbase-sr4",
                        "50gbase-cr",
                        "50gbase-er",
                        "50gbase-fr",
                        "50gbase-lr",
                        "50gbase-sr",
                        "100gbase-cr1",
                        "100gbase-cr2",
                        "100gbase-cr4",
                        "100gbase-cr10",
                        "100gbase-cwdm4",
                        "100gbase-dr",
                        "100gbase-er4",
                        "100gbase-fr1",
                        "100gbase-lr1",
                        "100gbase-lr4",
                        "100gbase-sr1",
                        "100gbase-sr1.2",
                        "100gbase-sr2",
                        "100gbase-sr4",
                        "100gbase-sr10",
                        "100gbase-zr",
                        "200gbase-cr2",
                        "200gbase-cr4",
                        "200gbase-dr4",
                        "200gbase-er4",
                        "200gbase-fr4",
                        "200gbase-lr4",
                        "200gbase-sr2",
                        "200gbase-sr4",
                        "200gbase-vr2",
                        "400gbase-cr4",
                        "400gbase-dr4",
                        "400gbase-er8",
                        "400gbase-fr4",
                        "400gbase-fr8",
                        "400gbase-lr4",
                        "400gbase-lr8",
                        "400gbase-sr4",
                        "400gbase-sr4_2",
                        "400gbase-sr8",
                        "400gbase-sr16",
                        "400gbase-vr4",
                        "400gbase-zr",
                        "800gbase-cr8",
                        "800gbase-dr8",
                        "800gbase-sr8",
                        "800gbase-vr8",
                        "100base-x-sfp",
                        "1000base-x-gbic",
                        "1000base-x-sfp",
                        "10gbase-x-sfpp",
                        "10gbase-x-xenpak",
                        "10gbase-x-xfp",
                        "10gbase-x-x2",
                        "25gbase-x-sfp28",
                        "40gbase-x-qsfpp",
                        "50gbase-x-sfp28",
                        "50gbase-x-sfp56",
                        "100gbase-x-cfp",
                        "100gbase-x-cfp2",
                        "100gbase-x-cfp4",
                        "100gbase-x-cxp",
                        "100gbase-x-cpak",
                        "100gbase-x-dsfp",
                        "100gbase-x-qsfp28",
                        "100gbase-x-qsfpdd",
                        "100gbase-x-sfpdd",
                        "200gbase-x-cfp2",
                        "200gbase-x-qsfp56",
                        "200gbase-x-qsfpdd",
                        "400gbase-x-qsfp112",
                        "400gbase-x-qsfpdd",
                        "400gbase-x-cdfp",
                        "400gbase-x-cfp2",
                        "400gbase-x-cfp8",
                        "400gbase-x-osfp",
                        "400gbase-x-osfp-rhs",
                        "800gbase-x-osfp",
                        "800gbase-x-qsfpdd",
                        "1000base-kx",
                        "2.5gbase-kx",
                        "5gbase-kr",
                        "10gbase-kr",
                        "10gbase-kx4",
                        "25gbase-kr",
                        "40gbase-kr4",
                        "50gbase-kr",
                        "100gbase-kp4",
                        "100gbase-kr2",
                        "100gbase-kr4",
                        "ieee802.11a",
                        "ieee802.11g",
                        "ieee802.11n",
                        "ieee802.11ac",
                        "ieee802.11ad",
                        "ieee802.11ax",
                        "ieee802.11ay",
                        "ieee802.11be",
                        "ieee802.15.1",
                        "ieee802.15.4",
                        "other-wireless",
                        "gsm",
                        "cdma",
                        "lte",
                        "4g",
                        "5g",
                        "sonet-oc3",
                        "sonet-oc12",
                        "sonet-oc48",
                        "sonet-oc192",
                        "sonet-oc768",
                        "sonet-oc1920",
                        "sonet-oc3840",
                        "1gfc-sfp",
                        "2gfc-sfp",
                        "4gfc-sfp",
                        "8gfc-sfpp",
                        "16gfc-sfpp",
                        "32gfc-sfp28",
                        "32gfc-sfpp",
                        "64gfc-qsfpp",
                        "64gfc-sfpdd",
                        "64gfc-sfpp",
                        "128gfc-qsfp28",
                        "infiniband-sdr",
                        "infiniband-ddr",
                        "infiniband-qdr",
                        "infiniband-fdr10",
                        "infiniband-fdr",
                        "infiniband-edr",
                        "infiniband-hdr",
                        "infiniband-ndr",
                        "infiniband-xdr",
                        "t1",
                        "e1",
                        "t3",
                        "e3",
                        "xdsl",
                        "docsis",
                        "moca",
                        "bpon",
                        "epon",
                        "10g-epon",
                        "gpon",
                        "xg-pon",
                        "xgs-pon",
                        "ng-pon2",
                        "25g-pon",
                        "50g-pon",
                        "cisco-stackwise",
                        "cisco-stackwise-plus",
                        "cisco-flexstack",
                        "cisco-flexstack-plus",
                        "cisco-stackwise-80",
                        "cisco-stackwise-160",
                        "cisco-stackwise-320",
                        "cisco-stackwise-480",
                        "cisco-stackwise-1t",
                        "juniper-vcp",
                        "extreme-summitstack",
                        "extreme-summitstack-128",
                        "extreme-summitstack-256",
                        "extreme-summitstack-512",
                        "other"
                    ]
                },
                "poe_mode": {
                    "type": "string",
                    "enum": [
                        "pd",
                        "pse"
                    ]
                },
                "poe_type": {
                    "type": "string",
                    "enum": [
                        "type1-ieee802.3af",
                        "type2-ieee802.3at",
                        "type3-ieee802.3bt",
                        "type4-ieee802.3bt",
                        "passive-24v-2pair",
                        "passive-24v-4pair",
                        "passive-48v-2pair",
                        "passive-48v-4pair"
                    ]
                },
                "rf_role": {
                    "type": "string",
                    "enum": [
                        "ap",
                        "station"
                    ]
                }
            }
        },
        "front-port": {
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "8p8c",
                        "8p6c",
                        "8p4c",
                        "8p2c",
                        "6p6c",
                        "6p4c",
                        "6p2c",
                        "4p4c",
                        "4p2c",
                        "gg45",
                        "tera-4p",
                        "tera-2p",
                        "tera-1p",
                        "110-punch",
                        "bnc",
                        "f",
                        "n",
                        "mrj21",
                        "fc",
                        "fc-pc",
                        "fc-upc",
                        "fc-apc",
                        "lc",
                        "lc-pc",
                        "lc-upc",
                        "lc-apc",
                        "lsh",
                        "lsh-pc",
                        "lsh-upc",
                        "lsh-apc",
                        "lx5",
                        "lx5-pc",
                        "lx5-upc",
                        "lx5-apc",
                        "mpo",
                        "mtrj",
                        "sc",
                        "sc-pc",
                        "sc-upc",
                        "sc-apc",
                        "st",
                        "cs",
                        "sn",
                        "sma-905",
                        "sma-906",
                        "urm-p2",
                        "urm-p4",
                        "urm-p8",
                        "splice",
                        "usb-a",
                        "usb-b",
                        "usb-c",
                        "usb-mini-a",
                        "usb-mini-b",
                        "usb-micro-a",
                        "usb-micro-b",
                        "usb-micro-ab",
                        "other"
                    ]
                }
            }
        },
        "rear-port": {
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "8p8c",
                        "8p6c",
                        "8p4c",
                        "8p2c",
                        "6p6c",
                        "6p4c",
                        "6p2c",
                        "4p4c",
                        "4p2c",
                        "gg45",
                        "tera-4p",
                        "tera-2p",
                        "tera-1p",
                        "110-punch",
                        "bnc",
                        "f",
                        "n",
                        "mrj21",
                        "fc",
                        "fc-pc",
                        "fc-upc",
                        "fc-apc",
                        "lc",
                        "lc-pc",
                        "lc-upc",
                        "lc-apc",
                        "lsh",
                        "lsh-pc",
                        "lsh-upc",
                        "lsh-apc",
                        "lx5",
                        "lx5-pc",
                        "lx5-upc",
                        "lx5-apc",
                        "mpo",
                        "mtrj",
                        "sc",
                        "sc-pc",
                        "sc-upc",
                        "sc-apc",
                        "st",
                        "cs",
                        "sn",
                        "sma-905",
                        "sma-906",
                        "urm-p2",
                        "urm-p4",
                        "urm-p8",
                        "splice",
                        "usb-a",
                        "usb-b",
                        "usb-c",
                        "usb-mini-a",
                        "usb-mini-b",
                        "usb-micro-a",
                        "usb-micro-b",
                        "usb-micro-ab",
                        "other"
                    ]
                }
            }
        }
    }
}
