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