2 static const char _afb_description_v2_monitor[] =
3 "{\"openapi\":\"3.0.0\",\"info\":{\"description\":\"monitoring of binding"
4 "s and internals\",\"title\":\"monitor\",\"version\":\"1.0\",\"x-binding-"
5 "c-generator\":{\"api\":\"monitor\",\"version\":2,\"prefix\":\"f_\",\"pos"
6 "tfix\":\"\",\"preinit\":null,\"init\":null,\"onevent\":null,\"scope\":\""
7 "static\",\"private\":true}},\"servers\":[{\"url\":\"ws://{host}:{port}/a"
8 "pi/monitor\",\"description\":\"The API server.\",\"variables\":{\"host\""
9 ":{\"default\":\"localhost\"},\"port\":{\"default\":\"1234\"}},\"x-afb-ev"
10 "ents\":[{\"$ref\":\"#/components/schemas/afb-event\"}]}],\"components\":"
11 "{\"schemas\":{\"afb-reply\":{\"$ref\":\"#/components/schemas/afb-reply-v"
12 "1\"},\"afb-event\":{\"$ref\":\"#/components/schemas/afb-event-v1\"},\"af"
13 "b-reply-v1\":{\"title\":\"Generic response.\",\"type\":\"object\",\"requ"
14 "ired\":[\"jtype\",\"request\"],\"properties\":{\"jtype\":{\"type\":\"str"
15 "ing\",\"const\":\"afb-reply\"},\"request\":{\"type\":\"object\",\"requir"
16 "ed\":[\"status\"],\"properties\":{\"status\":{\"type\":\"string\"},\"inf"
17 "o\":{\"type\":\"string\"},\"token\":{\"type\":\"string\"},\"uuid\":{\"ty"
18 "pe\":\"string\"},\"reqid\":{\"type\":\"string\"}}},\"response\":{\"type\""
19 ":\"object\"}}},\"afb-event-v1\":{\"type\":\"object\",\"required\":[\"jty"
20 "pe\",\"event\"],\"properties\":{\"jtype\":{\"type\":\"string\",\"const\""
21 ":\"afb-event\"},\"event\":{\"type\":\"string\"},\"data\":{\"type\":\"obj"
22 "ect\"}}},\"set-verbosity\":{\"anyOf\":[{\"$ref\":\"#/components/schemas/"
23 "verbosity-map\"},{\"$ref\":\"#/components/schemas/verbosity-level\"}]},\""
24 "get-request\":{\"type\":\"object\",\"properties\":{\"verbosity\":{\"$ref"
25 "\":\"#/components/schemas/get-verbosity\"},\"apis\":{\"$ref\":\"#/compon"
26 "ents/schemas/get-apis\"}}},\"get-response\":{\"type\":\"object\",\"prope"
27 "rties\":{\"verbosity\":{\"$ref\":\"#/components/schemas/verbosity-map\"}"
28 ",\"apis\":{\"type\":\"object\"}}},\"get-verbosity\":{\"anyOf\":[{\"type\""
29 ":\"boolean\"},{\"type\":\"array\",\"items\":{\"type\":\"string\"}},{\"ty"
30 "pe\":\"object\"}]},\"get-apis\":{\"anyOf\":[{\"type\":\"boolean\"},{\"ty"
31 "pe\":\"array\",\"items\":{\"type\":\"string\"}},{\"type\":\"object\"}]},"
32 "\"verbosity-map\":{\"type\":\"object\",\"patternProperties\":{\"^.*$\":{"
33 "\"$ref\":\"#/components/schemas/verbosity-level\"}}},\"verbosity-level\""
34 ":{\"enum\":[\"debug\",3,\"info\",2,\"notice\",\"warning\",1,\"error\",0]"
35 "},\"trace-add\":{\"anyOf\":[{\"type\":\"array\",\"items\":{\"$ref\":\"#/"
36 "components/schemas/trace-add-object\"}},{\"$ref\":\"#/components/schemas"
37 "/trace-add-any\"}]},\"trace-add-any\":{\"anyOf\":[{\"$ref\":\"#/componen"
38 "ts/schemas/trace-add-request\"},{\"$ref\":\"#/components/schemas/trace-a"
39 "dd-object\"}]},\"trace-add-object\":{\"type\":\"object\",\"properties\":"
40 "{\"name\":{\"type\":\"string\",\"description\":\"name of the generated e"
41 "vent\",\"default\":\"trace\"},\"tag\":{\"type\":\"string\",\"description"
42 "\":\"tag for grouping traces\",\"default\":\"trace\"},\"api\":{\"type\":"
43 "\"string\",\"description\":\"api for requests, daemons and services\"},\""
44 "verb\":{\"type\":\"string\",\"description\":\"verb for requests\"},\"uui"
45 "d\":{\"type\":\"string\",\"description\":\"uuid of session for requests\""
46 "},\"pattern\":{\"type\":\"string\",\"description\":\"pattern for events\""
47 "},\"request\":{\"$ref\":\"#/components/schemas/trace-add-request\"},\"da"
48 "emon\":{\"$ref\":\"#/components/schemas/trace-add-daemon\"},\"service\":"
49 "{\"$ref\":\"#/components/schemas/trace-add-service\"},\"event\":{\"$ref\""
50 ":\"#/components/schemas/trace-add-event\"},\"session\":{\"$ref\":\"#/com"
51 "ponents/schemas/trace-add-session\"},\"for\":{\"$ref\":\"#/components/sc"
52 "hemas/trace-add\"}},\"examples\":[{\"tag\":\"1\",\"for\":[\"common\",{\""
53 "api\":\"xxx\",\"request\":\"*\",\"daemon\":\"*\",\"service\":\"*\"}]}]},"
54 "\"trace-add-request\":{\"anyOf\":[{\"type\":\"array\",\"items\":{\"$ref\""
55 ":\"#/components/schemas/trace-request-names\"}},{\"$ref\":\"#/components"
56 "/schemas/trace-request-names\"}]},\"trace-request-names\":{\"title\":\"n"
57 "ame of traceable items of requests\",\"enum\":[\"*\",\"addref\",\"all\","
58 "\"args\",\"begin\",\"common\",\"context\",\"context_get\",\"context_set\""
59 ",\"end\",\"event\",\"extra\",\"fail\",\"get\",\"json\",\"life\",\"ref\","
60 "\"result\",\"session\",\"session_close\",\"session_set_LOA\",\"simple\","
61 "\"store\",\"stores\",\"subcall\",\"subcall_result\",\"subcalls\",\"subca"
62 "llsync\",\"subcallsync_result\",\"subscribe\",\"success\",\"unref\",\"un"
63 "store\",\"unsubscribe\",\"vverbose\"]},\"trace-add-daemon\":{\"anyOf\":["
64 "{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/trace-dae"
65 "mon-names\"}},{\"$ref\":\"#/components/schemas/trace-daemon-names\"}]},\""
66 "trace-daemon-names\":{\"title\":\"name of traceable items of daemons\",\""
67 "enum\":[\"*\",\"all\",\"common\",\"event_broadcast_after\",\"event_broad"
68 "cast_before\",\"event_make\",\"extra\",\"get_event_loop\",\"get_system_b"
69 "us\",\"get_user_bus\",\"queue_job\",\"require_api\",\"require_api_result"
70 "\",\"rootdir_get_fd\",\"rootdir_open_locale\",\"unstore_req\",\"vverbose"
71 "\"]},\"trace-add-service\":{\"anyOf\":[{\"type\":\"array\",\"items\":{\""
72 "$ref\":\"#/components/schemas/trace-service-names\"}},{\"$ref\":\"#/comp"
73 "onents/schemas/trace-service-names\"}]},\"trace-service-names\":{\"title"
74 "\":\"name of traceable items of services\",\"enum\":[\"*\",\"all\",\"cal"
75 "l\",\"call_result\",\"callsync\",\"callsync_result\",\"on_event_after\","
76 "\"on_event_before\",\"start_after\",\"start_before\"]},\"trace-add-event"
77 "\":{\"anyOf\":[{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/sc"
78 "hemas/trace-event-names\"}},{\"$ref\":\"#/components/schemas/trace-event"
79 "-names\"}]},\"trace-event-names\":{\"title\":\"name of traceable items o"
80 "f events\",\"enum\":[\"*\",\"all\",\"broadcast_after\",\"broadcast_befor"
81 "e\",\"common\",\"create\",\"drop\",\"extra\",\"name\",\"push_after\",\"p"
82 "ush_before\"]},\"trace-add-session\":{\"anyOf\":[{\"type\":\"array\",\"i"
83 "tems\":{\"$ref\":\"#/components/schemas/trace-session-names\"}},{\"$ref\""
84 ":\"#/components/schemas/trace-session-names\"}]},\"trace-session-names\""
85 ":{\"title\":\"name of traceable items for sessions\",\"enum\":[\"*\",\"a"
86 "ddref\",\"all\",\"close\",\"common\",\"create\",\"destroy\",\"renew\",\""
87 "unref\"]},\"trace-drop\":{\"anyOf\":[{\"type\":\"boolean\"},{\"type\":\""
88 "object\",\"properties\":{\"event\":{\"anyOf\":[{\"type\":\"string\"},{\""
89 "type\":\"array\",\"items\":\"string\"}]},\"tag\":{\"anyOf\":[{\"type\":\""
90 "string\"},{\"type\":\"array\",\"items\":\"string\"}]},\"uuid\":{\"anyOf\""
91 ":[{\"type\":\"string\"},{\"type\":\"array\",\"items\":\"string\"}]}}}]}}"
92 ",\"x-permissions\":{\"trace\":{\"permission\":\"urn:AGL:permission:monit"
93 "or:public:trace\"},\"set\":{\"permission\":\"urn:AGL:permission:monitor:"
94 "public:set\"},\"get\":{\"permission\":\"urn:AGL:permission:monitor:publi"
95 "c:get\"},\"get-or-set\":{\"anyOf\":[{\"$ref\":\"#/components/x-permissio"
96 "ns/get\"},{\"$ref\":\"#/components/x-permissions/set\"}]}}},\"paths\":{\""
97 "/get\":{\"description\":\"Get monitoring data.\",\"get\":{\"x-permission"
98 "s\":{\"$ref\":\"#/components/x-permissions/get-or-set\"},\"parameters\":"
99 "[{\"in\":\"query\",\"name\":\"verbosity\",\"required\":false,\"schema\":"
100 "{\"$ref\":\"#/components/schemas/get-verbosity\"}},{\"in\":\"query\",\"n"
101 "ame\":\"apis\",\"required\":false,\"schema\":{\"$ref\":\"#/components/sc"
102 "hemas/get-apis\"}}],\"responses\":{\"200\":{\"description\":\"A complex "
103 "object array response\",\"content\":{\"application/json\":{\"schema\":{\""
104 "$ref\":\"#/components/schemas/afb-reply\"}}}}}}},\"/set\":{\"description"
105 "\":\"Set monitoring actions.\",\"get\":{\"x-permissions\":{\"$ref\":\"#/"
106 "components/x-permissions/set\"},\"parameters\":[{\"in\":\"query\",\"name"
107 "\":\"verbosity\",\"required\":false,\"schema\":{\"$ref\":\"#/components/"
108 "schemas/set-verbosity\"}}],\"responses\":{\"200\":{\"description\":\"A c"
109 "omplex object array response\",\"content\":{\"application/json\":{\"sche"
110 "ma\":{\"$ref\":\"#/components/schemas/afb-reply\"}}}}}}},\"/trace\":{\"d"
111 "escription\":\"Set monitoring actions.\",\"get\":{\"x-permissions\":{\"$"
112 "ref\":\"#/components/x-permissions/trace\"},\"parameters\":[{\"in\":\"qu"
113 "ery\",\"name\":\"add\",\"required\":false,\"schema\":{\"$ref\":\"#/compo"
114 "nents/schemas/trace-add\"}},{\"in\":\"query\",\"name\":\"drop\",\"requir"
115 "ed\":false,\"schema\":{\"$ref\":\"#/components/schemas/trace-drop\"}}],\""
116 "responses\":{\"200\":{\"description\":\"A complex object array response\""
117 ",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/"
118 "schemas/afb-reply\"}}}}}}}}}"
121 static const struct afb_auth _afb_auths_v2_monitor[] = {
122 { .type = afb_auth_Permission, .text = "urn:AGL:permission:monitor:public:set" },
123 { .type = afb_auth_Permission, .text = "urn:AGL:permission:monitor:public:get" },
124 { .type = afb_auth_Or, .first = &_afb_auths_v2_monitor[1], .next = &_afb_auths_v2_monitor[0] },
125 { .type = afb_auth_Permission, .text = "urn:AGL:permission:monitor:public:trace" }
128 static void f_get(struct afb_req req);
129 static void f_set(struct afb_req req);
130 static void f_trace(struct afb_req req);
132 static const struct afb_verb_v2 _afb_verbs_v2_monitor[] = {
136 .auth = &_afb_auths_v2_monitor[2],
137 .info = "Get monitoring data.",
138 .session = AFB_SESSION_NONE_V2
143 .auth = &_afb_auths_v2_monitor[0],
144 .info = "Set monitoring actions.",
145 .session = AFB_SESSION_NONE_V2
150 .auth = &_afb_auths_v2_monitor[3],
151 .info = "Set monitoring actions.",
152 .session = AFB_SESSION_NONE_V2
163 static const struct afb_binding_v2 _afb_binding_v2_monitor = {
165 .specification = _afb_description_v2_monitor,
166 .info = "monitoring of bindings and internals",
167 .verbs = _afb_verbs_v2_monitor,