ed07c31c759eda27ec844c07407bdfeafd8faaff
[src/app-framework-binder.git] / src / genskel / monitor-api.json
1 {
2         "namespace": "urn:AGL:binding",
3
4         "api": "monitor",
5
6         "doc": "monitor the bindings",
7
8         "verbs": {
9                 "set": {
10                         "doc": "set various values",
11                         "permissions": { "$ref": "#/permissions/set" },
12                         "LOA": { "minimum": 0 },
13                         "request": { "$ref": "#/types/set-request" },
14                         "response": { "$ref": "#/types/set-response" }
15                 },
16                 "get": {
17                         "doc": "get the verbosity of apis",
18                         "permissions": { "$ref": "#/permissions/get-or-set" },
19                         "LOA": { "minimum": 0 },
20                         "request": { "$ref": "#/types/get-request" },
21                         "response": { "$ref": "#/types/get-response" }
22                 }
23         },
24
25         "permissions": {
26                 "get": {
27                         "permission": "urn:AGL:permission::platform:monitor:get"
28                 },
29                 "set": {
30                         "permission": "urn:AGL:permission::platform:monitor:set"
31                 },
32                 "get-or-set": {
33                         "anyOf": [
34                                 { "$ref": "#/permissions/get" },
35                                 { "$ref": "#/permissions/set" }
36                         ]
37                 }
38         },
39
40         "types": {
41                 "set-request": {
42                         "type": "object",
43                         "properties": {
44                                 "verbosity": { "$ref": "#/types/set-verbosity" }
45                         }
46                 },
47                 "set-response": {
48                         "type": "object"
49                 },
50
51                 "set-verbosity": {
52                         "anyOf": [
53                                 { "$ref": "#/types/verbosity-map" },
54                                 { "$ref": "#/types/verbosity-level" }
55                         ]
56                 },
57
58                 "get-request": {
59                         "type": "object",
60                         "properties": {
61                                 "verbosity": { "$ref": "#/types/get-verbosity" },
62                                 "apis": { "$ref": "#/types/get-apis" }
63                         }
64                 },
65                 "get-response": {
66                         "type": "object",
67                         "properties": {
68                                 "verbosity": { "$ref": "#/types/verbosity-map" },
69                                 "apis": { "type": "object" }
70                         }
71                 },
72
73                 "get-verbosity": {
74                         "anyOf": [
75                                 { "type": "boolean" },
76                                 { "type": "array", "items": { "type": "string" } },
77                                 { "type": "object" }
78                         ]
79                 },
80                 "get-apis": {
81                         "anyOf": [
82                                 { "type": "boolean" },
83                                 { "type": "array", "items": { "type": "string" } },
84                                 { "type": "object" }
85                         ]
86                 },
87
88                 "verbosity-map": {
89                         "type": "object",
90                         "patternProperties": { "^.*$": { "$ref": "#/types/verbosity-level" } }
91                 },
92                 "verbosity-level": {
93                         "enum": [ "debug", 3, "info", 2, "notice", "warning", 1, "error", 0 ]
94                 }
95
96
97         },
98
99         "meta-binding": {
100                 "prefix": "f_",
101                 "postfix": "",
102                 "start": null,
103                 "onevent": null,
104                 "init": null,
105                 "scope": "static",
106                 "private": true
107         }
108 }