wip
[src/app-framework-binder.git] / src / devtools / idl-monitor.json
1 {
2   "afbidl": "0.1",
3   "info": {
4     "apiname": "monitor",
5     "description": "monitoring of bindings and internals",
6     "title": "monitor",
7     "version": "1.0"
8   },
9   "tools": {
10     "genskel": {
11       "version": 2,
12       "prefix": "f_",
13       "postfix": "",
14       "preinit": null,
15       "init": null,
16       "onevent": null,
17       "scope": "static",
18       "private": true
19     }
20   },
21   "verbs": {
22     "get": {
23       "description": "Get monitoring data.",
24       "permissions": { "session": "check" },
25       "request": { "$ref": "#/schemas/get-request" },
26       "reply": { "$ref": "#/schemas/get-reply" }
27     },
28     "set": {
29       "description": "Set monitoring actions.",
30       "permissions": { "session": "check" },
31       "request": { "$ref": "#/schemas/set-request" },
32       "reply": { "$ref": "#/schemas/any" }
33     },
34     "trace": {
35       "description": "Set monitoring actions.",
36       "permissions": { "session": "check" },
37       "request": { "$ref": "#/schemas/trace-request" },
38       "reply": { "$ref": "#/schemas/any" }
39     },
40     "session": {
41       "description": "describes the session.",
42       "permissions": { "session": "check" },
43       "request": { "$ref": "#/schemas/session-request" },
44       "reply": { "$ref": "#/schemas/any" }
45     }
46   },
47   "schemas": {
48     "any": {
49       "title": "Any value",
50       "type": [ "null", "boolean", "object", "array", "number", "string" ]
51     },
52     "set-request": {
53       "type": "object",
54       "properties": {
55         "verbosity": { "$ref": "#/schemas/set-verbosity" }
56       }
57     },
58     "set-verbosity": {
59       "anyOf": [
60         { "$ref": "#/schemas/verbosity-map" },
61         { "$ref": "#/schemas/verbosity-level" }
62       ]
63     },
64     "get-request": {
65       "type": "object",
66       "properties": {
67         "verbosity": { "$ref": "#/schemas/get-verbosity" },
68         "apis": { "$ref": "#/schemas/get-apis" }
69       }
70     },
71     "get-reply": {
72       "type": "object",
73       "properties": {
74         "verbosity": { "$ref": "#/schemas/verbosity-map" },
75         "apis": { "type": "object" }
76       }
77     },
78     "get-verbosity": {
79       "anyOf": [
80         { "type": "boolean" },
81         { "type": "array", "items": { "type": "string" } },
82         { "type": "object" }
83       ]
84     },
85     "get-apis": {
86       "anyOf": [
87         { "type": "boolean" },
88         { "type": "array", "items": { "type": "string" } },
89         { "type": "object" }
90       ]
91     },
92     "verbosity-map": {
93       "type": "object",
94       "patternProperties": { "^.*$": { "$ref": "#/schemas/verbosity-level" } }
95     },
96     "verbosity-level": {
97       "enum": [ "debug", 3, "info", 2, "notice", "warning", 1, "error", 0 ]
98     },
99     "trace-request": {
100       "type": "object",
101       "properties": {
102         "add": { "$ref": "#/schemas/trace-add" },
103         "drop": { "$ref": "#/schemas/trace-drop" }
104       }
105     },
106     "trace-add": {
107       "anyOf": [
108         { "type": "array", "items": { "$ref": "#/schemas/trace-add-object" } },
109         { "$ref": "#/schemas/trace-add-any" }
110       ]
111     },
112     "trace-add-any": {
113       "anyOf": [
114         { "$ref": "#/schemas/trace-add-request" },
115         { "$ref": "#/schemas/trace-add-object" }
116       ]
117     },
118     "trace-add-object": {
119       "type": "object",
120       "properties": {
121         "name": { "type": "string", "description": "name of the generated event", "default": "trace" },
122         "tag": { "type": "string", "description": "tag for grouping traces", "default": "trace" },
123         "api": { "type": "string", "description": "api for requests, daemons and services" },
124         "verb": { "type": "string", "description": "verb for requests" },
125         "uuid": { "type": "string", "description": "uuid of session for requests" },
126         "pattern": { "type": "string", "description": "pattern for events" },
127         "request": { "$ref": "#/schemas/trace-add-request" },
128         "daemon": { "$ref": "#/schemas/trace-add-daemon" },
129         "service": { "$ref": "#/schemas/trace-add-service" },
130         "event": { "$ref": "#/schemas/trace-add-event" },
131         "session": { "$ref": "#/schemas/trace-add-session" },
132         "for": { "$ref": "#/schemas/trace-add" }
133       },
134       "examples": [
135         { "tag": "1", "for": [ "common", { "api": "xxx", "request": "*", "daemon": "*", "service": "*" } ] }
136       ]
137     },
138     "trace-add-request": {
139       "anyOf": [
140         { "type": "array", "items": { "$ref": "#/schemas/trace-request-names" } },
141         { "$ref": "#/schemas/trace-request-names" }
142       ]
143     },
144     "trace-request-names": {
145       "title": "name of traceable items of requests",
146       "enum": [
147         "*",
148         "addref",
149         "all",
150         "args",
151         "begin",
152         "common",
153         "context",
154         "context_get",
155         "context_set",
156         "end",
157         "event",
158         "extra",
159         "get",
160         "json",
161         "life",
162         "ref",
163         "reply",
164         "result",
165         "session",
166         "session_close",
167         "session_set_LOA",
168         "simple",
169         "store",
170         "stores",
171         "subcall",
172         "subcall_result",
173         "subcalls",
174         "subcallsync",
175         "subcallsync_result",
176         "subscribe",
177         "unref",
178         "unstore",
179         "unsubscribe",
180         "vverbose"
181       ]
182     },
183     "trace-add-daemon": {
184       "anyOf": [
185         { "type": "array", "items": { "$ref": "#/schemas/trace-daemon-names" } },
186         { "$ref": "#/schemas/trace-daemon-names" }
187       ]
188     },
189     "trace-daemon-names": {
190       "title": "name of traceable items of daemons",
191       "enum": [
192         "*",
193         "all",
194         "common",
195         "event_broadcast_after",
196         "event_broadcast_before",
197         "event_make",
198         "extra",
199         "get_event_loop",
200         "get_system_bus",
201         "get_user_bus",
202         "queue_job",
203         "require_api",
204         "require_api_result",
205         "rootdir_get_fd",
206         "rootdir_open_locale",
207         "unstore_req",
208         "vverbose"
209       ]
210     },
211     "trace-add-service": {
212       "anyOf": [
213         { "type": "array", "items": { "$ref": "#/schemas/trace-service-names" } },
214         { "$ref": "#/schemas/trace-service-names" }
215       ]
216     },
217     "trace-service-names": {
218       "title": "name of traceable items of services",
219       "enum": [
220         "*",
221         "all",
222         "call",
223         "call_result",
224         "callsync",
225         "callsync_result",
226         "on_event_after",
227         "on_event_before",
228         "start_after",
229         "start_before"
230       ]
231     },
232     "trace-add-event": {
233       "anyOf": [
234         { "type": "array", "items": { "$ref": "#/schemas/trace-event-names" } },
235         { "$ref": "#/schemas/trace-event-names" }
236       ]
237     },
238     "trace-event-names": {
239       "title": "name of traceable items of events",
240       "enum": [
241         "*",
242         "all",
243         "broadcast_after",
244         "broadcast_before",
245         "common",
246         "create",
247         "drop",
248         "extra",
249         "name",
250         "push_after",
251         "push_before"
252       ]
253     },
254     "trace-add-session": {
255       "anyOf": [
256         { "type": "array", "items": { "$ref": "#/schemas/trace-session-names" } },
257         { "$ref": "#/schemas/trace-session-names" }
258       ]
259     },
260     "trace-session-names": {
261       "title": "name of traceable items for sessions",
262       "enum": [
263         "*",
264         "addref",
265         "all",
266         "close",
267         "common",
268         "create",
269         "destroy",
270         "renew",
271         "unref"
272       ]
273     },
274     "trace-drop": {
275       "anyOf": [
276         { "type": "boolean" },
277         {
278           "type": "object",
279           "properties": {
280             "event": { "anyOf": [  { "type": "string" }, { "type": "array", "items": "string" } ] },
281             "tag": { "anyOf": [  { "type": "string" }, { "type": "array", "items": "string" } ] },
282             "uuid": { "anyOf": [  { "type": "string" }, { "type": "array", "items": "string" } ] }
283           }
284         }
285       ]
286     },
287     "session-request": {
288       "type": "object",
289       "properties": {
290         "refresh-token": { "type": "boolean" }
291       }
292     }
293   }
294 }