Browse Source

add missing schemas

Zach White 4 years ago
parent
commit
266a85eda0

+ 35 - 0
data/schemas/api_keyboard.jsonschema

@@ -0,0 +1,35 @@
+{
+    "allOf": [
+        { "$ref": "qmk.keyboard.v1" },
+        {
+            "$id": "qmk.api.keyboard.v1",
+            "keymaps": {
+                "type": "string"
+            },
+            "parse_errors": {
+                "type": "array",
+                "items": {
+                    "type": "string"
+                }
+            },
+            "parse_warnings": {
+                "type": "array",
+                "items": {
+                    "type": "string"
+                }
+            },
+            "processor_type": {
+                "type": "string"
+            },
+            "protocol": {
+                "type": "string"
+            },
+            "keyboard_folder": {
+                "type": "string"
+            },
+            "platform": {
+                "type": "string"
+            }
+        }
+    ]
+}

+ 1 - 0
data/schemas/false.jsonschema

@@ -0,0 +1 @@
+false

+ 232 - 0
data/schemas/keyboard.jsonschema

@@ -0,0 +1,232 @@
+{
+    "$schema": "http://json-schema.org/schema#",
+    "$id": "qmk.keyboard.v1",
+    "title": "Keyboard Information",
+    "type": "object",
+    "properties": {
+        "keyboard_name": {
+            "type": "string",
+            "minLength": 2,
+            "maxLength": 250
+        },
+        "maintainer": {
+            "type": "string",
+            "minLength": 2,
+            "maxLength": 250
+        },
+        "manufacturer": {
+            "type": "string",
+            "minLength": 2,
+            "maxLength": 250
+        },
+        "url": {
+            "type": "string",
+            "format": "uri"
+        },
+        "processor": {
+            "type": "string",
+            "enum": ["MK20DX128", "MK20DX256", "MKL26Z64", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F411", "at90usb1286", "at90usb646", "atmega16u2", "atmega328p", "atmega32a", "atmega32u2", "atmega32u4", "attiny85", "cortex-m4"]
+        },
+        "bootloader": {
+            "type": "string",
+            "enum": ["atmel-dfu", "bootloadHID", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "micronucleus", "qmk-dfu", "stm32-dfu", "stm32duino", "unknown", "USBasp"]
+        },
+        "diode_direction": {
+            "type": "string",
+            "enum": ["COL2ROW", "ROW2COL"]
+        },
+        "debounce": {
+            "type": "number",
+            "min": 0,
+            "multipleOf": 1
+        },
+        "height": {
+            "type": "number",
+            "min": 0.25
+        },
+        "width": {
+            "type": "number",
+            "min": 0.25
+        },
+        "community_layouts": {
+            "type": "array",
+            "items": {
+                "type": "string",
+                "minLength": 2,
+                "pattern": "^[0-9a-z_]*$"
+            }
+        },
+        "features": {
+            "type": "object",
+            "additionalProperties": {"type": "boolean"}
+        },
+        "indicators": {
+            "type": "object",
+            "properties": {
+                "caps_lock": {
+                    "type": "string",
+                    "pattern": "^[A-K]\\d{1,2}$"
+                },
+                "num_lock": {
+                    "type": "string",
+                    "pattern": "^[A-K]\\d{1,2}$"
+                },
+                "scroll_lock": {
+                    "type": "string",
+                    "pattern": "^[A-K]\\d{1,2}$"
+                }
+            }
+        },
+        "layout_aliases": {
+            "type": "object",
+            "additionalProperties": {
+                "type": "string",
+                "pattern": "^LAYOUT_[0-9a-z_]*$"
+            }
+        },
+        "layouts": {
+            "type": "object",
+            "additionalProperties": {
+                "type": "object",
+                "additionalProperties": false,
+                "properties": {
+                    "c_macro": {
+                        "type": "boolean"
+                    },
+                    "key_count": {
+                        "type": "number",
+                        "min": 0,
+                        "multipleOf": 1
+                    },
+                    "layout": {
+                        "type": "array",
+                        "items": {
+                            "type": "object",
+                            "additionalProperties": false,
+                            "properties": {
+                                "label": {"type": "string"},
+                                "matrix": {
+                                    "type": "array",
+                                    "minItems": 2,
+                                    "maxItems": 2,
+                                    "items": {
+                                        "type": "number",
+                                        "min": 0,
+                                        "multipleOf": 1
+                                    }
+                                },
+                                "h": {
+                                    "type": "number",
+                                    "min": 0.25
+                                },
+                                "w": {
+                                    "type": "number",
+                                    "min": 0.25
+                                },
+                                "x": {
+                                    "type": "number",
+                                    "min": 0
+                                },
+                                "y": {
+                                    "type": "number",
+                                    "min": 0
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        },
+        "matrix_pins": {
+            "type": "object",
+            "additionalProperties": false,
+            "properties": {
+                "direct": {
+                    "type": "array",
+                    "items": {
+                        "type": "array",
+                        "items": {
+                            "oneOf": [
+                                {
+                                    "type": "string",
+                                    "pattern": "^[A-K]\\d{1,2}$"
+                                },
+                                {
+                                    "type": "null"
+                                }
+                            ]
+                        }
+                    }
+                },
+                "cols": {
+                    "type": "array",
+                    "items": {
+                        "type": "string",
+                        "pattern": "^[A-K]\\d{1,2}$"
+                    }
+                },
+                "rows": {
+                    "type": "array",
+                    "items": {
+                        "type": "string",
+                        "pattern": "^[A-K]\\d{1,2}$"
+                    }
+                }
+            }
+        },
+        "rgblight": {
+            "type": "object",
+            "additionalProperties": false,
+            "properties": {
+                "animations": {
+                    "type": "object",
+                    "additionalProperties": {
+                        "type": "boolean"
+                    }
+                },
+                "brightness_steps": {
+                    "type": "number",
+                    "min": 0,
+                    "multipleOf": 1
+                },
+                "hue_steps": {
+                    "type": "number",
+                    "min": 0,
+                    "multipleOf": 1
+                },
+                "led_count": {
+                    "type": "number",
+                    "min": 0,
+                    "multipleOf": 1
+                },
+                "pin": {
+                    "type": "string",
+                    "pattern": "^[A-K]\\d{1,2}$"
+                },
+                "saturation_steps": {
+                    "type": "number",
+                    "min": 0,
+                    "multipleOf": 1
+                }
+            }
+        },
+        "usb": {
+            "type": "object",
+            "additionalProperties": false,
+            "properties": {
+                "device_ver": {
+                    "type": "string",
+                    "pattern": "^[0-9A-F]x[0-9A-F][0-9A-F][0-9A-F][0-9A-F]"
+                },
+                "pid": {
+                    "type": "string",
+                    "pattern": "^[0-9A-F]x[0-9A-F][0-9A-F][0-9A-F][0-9A-F]"
+                },
+                "vid": {
+                    "type": "string",
+                    "pattern": "^[0-9A-F]x[0-9A-F][0-9A-F][0-9A-F][0-9A-F]"
+                }
+            }
+        }
+    }
+}

+ 1 - 0
data/schemas/true.jsonschema

@@ -0,0 +1 @@
+true