JAL-1759 merge from develop
[jalview.git] / examples / biojson-doc / tests / fstab.json
diff --git a/examples/biojson-doc/tests/fstab.json b/examples/biojson-doc/tests/fstab.json
new file mode 100755 (executable)
index 0000000..bff452d
--- /dev/null
@@ -0,0 +1,87 @@
+[
+    {
+        "schema": {
+            "id": "http://some.site.somewhere/entry-schema#",
+            "$schema": "http://json-schema.org/draft-04/schema#",
+            "description": "schema for an fstab entry",
+            "type": "object",
+            "required": [ "storage" ],
+            "properties": {
+                "storage": {
+                    "type": "object",
+                    "oneOf": [
+                        { "$ref": "#/definitions/diskDevice" },
+                        { "$ref": "#/definitions/diskUUID" },
+                        { "$ref": "#/definitions/nfs" },
+                        { "$ref": "#/definitions/tmpfs" }
+                    ]
+                },
+                "fstype": {
+                    "enum": [ "ext3", "ext4", "btrfs" ],
+                    "default": "ext3"
+                },
+                "options": {
+                    "type": "array",
+                    "minItems": 1,
+                    "items": { "type": "string" },
+                    "uniqueItems": true
+                },
+                "readonly": { "type": "boolean" }
+            },
+            "definitions": {
+                "diskDevice": {
+                    "properties": {
+                        "type": { "enum": [ "disk" ] },
+                        "device": {
+                            "type": "string",
+                            "pattern": "^/dev/[^/]+(/[^/]+)*$"
+                        }
+                    },
+                    "required": [ "type", "device" ],
+                    "additionalProperties": false
+                },
+                "diskUUID": {
+                    "properties": {
+                        "type": { "enum": [ "disk" ] },
+                        "label": {
+                            "type": "string",
+                            "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
+                        }
+                    },
+                    "required": [ "type", "label" ],
+                    "additionalProperties": false
+                },
+                "nfs": {
+                    "properties": {
+                        "type": { "enum": [ "nfs" ] },
+                        "remotePath": {
+                            "type": "string",
+                            "pattern": "^(/[^/]+)+$"
+                        },
+                        "server": {
+                            "type": "string",
+                            "oneOf": [
+                                { "format": "host-name" },
+                                { "format": "ipv4" },
+                                { "format": "ipv6" }
+                            ]
+                        }
+                    },
+                    "required": [ "type", "server", "remotePath" ],
+                    "additionalProperties": false
+                },
+                "tmpfs": {
+                    "properties": {
+                        "type": { "enum": [ "tmpfs" ] },
+                        "sizeInMB": {
+                            "type": "integer",
+                            "minimum": 16,
+                            "maximum": 512
+                        }
+                    },
+                    "required": [ "type", "sizeInMB" ],
+                    "additionalProperties": false
+                }
+            }
+        }
+    }]