1{
2  "$schema": "http://json-schema.org/draft-04/schema#",
3  "type": "object",
4  "properties": {
5    "_comment": {
6      "type": "string"
7    },
8    "prefix": {
9      "type": "string",
10      "pattern": "^[A-Z_a-z][0-9A-Z_a-z]*$"
11    },
12    "type": {
13      "type": "string",
14      "const": ["opaque"]
15    },
16    "location": {
17      "type": ["integer","string"],
18      "pattern": "^(0x|0X)?[a-fA-F0-9]+$"
19    },
20    "mbedtls/h_condition": {
21      "type": "string"
22    },
23    "headers": {
24      "type": "array",
25      "items": {
26          "type": "string"
27        },
28        "default": []
29    },
30    "capabilities": {
31      "type": "array",
32      "items": [
33        {
34          "type": "object",
35          "properties": {
36            "_comment": {
37              "type": "string"
38            },
39            "mbedtls/c_condition": {
40              "type": "string"
41            },
42            "entry_points": {
43              "type": "array",
44              "items": {
45                  "type": "string"
46                }
47            },
48            "names": {
49              "type": "object",
50              "patternProperties": {
51                "^[A-Z_a-z][0-9A-Z_a-z]*$": {
52                  "type": "string",
53                  "pattern": "^[A-Z_a-z][0-9A-Z_a-z]*$"
54                }
55              }
56            }
57          },
58          "required": [
59            "entry_points"
60          ]
61        }
62      ]
63    }
64  },
65  "required": [
66    "prefix",
67    "type",
68    "location",
69    "capabilities"
70  ]
71}
72