016fb105881302407ec185d71292dce1b5988167
[src/app-framework-binder.git] / src / genskel / monitor-api.json
1 {
2   "openapi": "3.0.0",
3   "info": {
4     "description": "",
5     "title": "monitor",
6     "version": "1.0",
7     "x-binding-c-generator": {
8       "api": "monitor",
9       "version": 2,
10       "prefix": "f_",
11       "postfix": "",
12       "start": null,
13       "onevent": null,
14       "init": null,
15       "scope": "static",
16       "private": true      
17     }
18   },
19   "servers": [
20     {
21       "url": "ws://{host}:{port}/api/monitor",
22       "description": "The API server.",
23       "variables": {
24         "host": {
25           "default": "localhost"
26         },
27         "port": {
28           "default": "1234"
29         }
30       },
31       "x-afb-events": [
32         {
33           "$ref": "#/components/schemas/afb-event"
34         }
35       ]
36     }
37   ],
38   "components": {
39     "schemas": {
40       "afb-reply": {
41         "$ref": "#/components/schemas/afb-reply-v1"
42       },
43       "afb-event": {
44         "$ref": "#/components/schemas/afb-event-v1"
45       },
46       "afb-reply-v1": {
47         "title": "Generic response.",
48         "type": "object",
49         "required": [ "jtype", "request" ],
50         "properties": {
51           "jtype": {
52             "type": "string",
53             "const": "afb-reply"
54           },
55           "request": {
56             "type": "object",
57             "required": [ "status" ],
58             "properties": {
59               "status": { "type": "string" },
60               "info": { "type": "string" },
61               "token": { "type": "string" },
62               "uuid": { "type": "string" },
63               "reqid": { "type": "string" }
64             }
65           },
66           "response": { "type": "object" }
67         }
68       },
69       "afb-event-v1": {
70         "type": "object",
71         "required": [ "jtype", "event" ],
72         "properties": {
73           "jtype": {
74             "type": "string",
75             "const": "afb-event"
76           },
77           "event": { "type": "string" },
78           "data": { "type": "object" }
79         }
80       },
81       "set-verbosity": {
82         "anyOf": [
83           { "$ref": "#/components/schemas/verbosity-map" },
84           { "$ref": "#/components/schemas/verbosity-level" }
85         ]
86       },
87       "get-request": {
88         "type": "object",
89         "properties": {
90           "verbosity": { "$ref": "#/components/schemas/get-verbosity" },
91           "apis": { "$ref": "#/components/schemas/get-apis" }
92         }
93       },
94       "get-response": {
95         "type": "object",
96         "properties": {
97           "verbosity": { "$ref": "#/components/schemas/verbosity-map" },
98           "apis": { "type": "object" }
99         }
100       },
101       "get-verbosity": {
102         "anyOf": [
103           { "type": "boolean" },
104           { "type": "array", "items": { "type": "string" } },
105           { "type": "object" }
106         ]
107       },
108       "get-apis": {
109         "anyOf": [
110           { "type": "boolean" },
111           { "type": "array", "items": { "type": "string" } },
112           { "type": "object" }
113         ]
114       },
115       "verbosity-map": {
116         "type": "object",
117         "patternProperties": { "^.*$": { "$ref": "#/components/schemas/verbosity-level" } }
118       },
119       "verbosity-level": {
120         "enum": [ "debug", 3, "info", 2, "notice", "warning", 1, "error", 0 ]
121       }
122     },
123     "x-permissions": {
124         "set": {
125           "permission": "urn:AGL:permission:monitor:public:set"
126         },
127         "get": {
128           "permission": "urn:AGL:permission:monitor:public:get"
129         },
130         "get-or-set": {
131 "allOf":[{"session":"check"},{"LOA":1},{"token":"refresh"},{
132           "anyOf": [
133             { "$ref": "#/components/x-permissions/get" },
134             { "$ref": "#/components/x-permissions/set" }
135           ]
136 }]
137         }
138     }
139   },
140   "paths": {
141     "/get": {
142       "description": "Get monitoring data.",
143       "get": {
144         "x-permissions": {
145           "$ref": "#/components/x-permissions/get-or-set"
146         },
147         "parameters": [
148           {
149             "in": "query",
150             "name": "verbosity",
151             "required": false,
152             "schema": { "$ref": "#/components/schemas/get-verbosity" }
153           },
154           {
155             "in": "query",
156             "name": "apis",
157             "required": false,
158             "schema": { "$ref": "#/components/schemas/get-apis" }
159           }
160         ],
161         "responses": {
162           "200": {
163             "description": "A complex object array response",
164             "content": {
165               "application/json": {
166                 "schema": {
167                   "$ref": "#/components/schemas/afb-reply"
168                 }
169               }
170             }
171           }
172         }
173       }
174     },
175     "/set": {
176       "description": "Set monitoring actions.",
177       "get": {
178         "x-permissions": {
179           "$ref": "#/components/x-permissions/set"
180         },
181         "parameters": [
182           {
183             "in": "query",
184             "name": "verbosity",
185             "required": false,
186             "schema": { "$ref": "#/components/schemas/set-verbosity" }
187           }
188         ],
189         "responses": {
190           "200": {
191             "description": "A complex object array response",
192             "content": {
193               "application/json": {
194                 "schema": {
195                   "$ref": "#/components/schemas/afb-reply"
196                 }
197               }
198             }
199           }
200         }
201       }
202     }
203   }
204 }