1{
2    "Query": {
3       "description":
4         "Represents a search query using a boolean expression tree",
5       "type": "object",
6       "properties": {
7         "queryRoot": {
8           "$ref": "#/QueryNode"
9         },
10         "limit": {
11           "type": "integer",
12           "format": "int64"
13         },
14         "offset": {
15           "type": "integer",
16           "format": "int64"
17         }
18       },
19       "x-go-type": {
20           "import": {
21              "package": "bitbucket.di2e.net/scm/pir/ab-models.git",
22              "alias": "models"
23           },
24           "type": "Query"
25       }
26     },
27     "QueryNode": {
28      "description":
29        "Node in a boolean expression tree that represents a query",
30      "type": "object",
31      "properties": {
32        "and": {
33          "type": "array",
34          "items": {
35            "$ref": "#/QueryNode"
36          }
37        },
38        "or": {
39          "type": "array",
40          "items": {
41            "$ref": "#/QueryNode"
42          }
43        },
44        "not": {
45          "type": "array",
46          "items": {
47            "$ref": "#/QueryNode"
48          }
49        },
50        "wildcards": {
51          "description":
52            "Array of key/value pairs representing wildcard term matches",
53          "type": "array",
54          "items": {
55            "$ref": "./pair.json#/Pair"
56          }
57        },
58        "exact": {
59          "description":
60            "Array of key/value pairs representing exact term matches",
61          "type": "array",
62          "items": {
63            "$ref": "./pair.json#/Pair"
64          }
65        }
66      },
67      "x-go-type": {
68          "import": {
69            "package": "bitbucket.di2e.net/scm/pir/ab-models.git",
70            "alias": "models"
71          },
72          "type": "QueryNode"
73      }
74    }
75 }