aboutsummaryrefslogtreecommitdiffstats
path: root/src/monitor-api.inc
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2017-05-10 19:33:14 +0200
committerJosé Bollo <jose.bollo@iot.bzh>2017-05-11 15:47:55 +0200
commitae6f684d830871e81b0b4168424f6a4873eabbff (patch)
tree967bae411953be214614471b81823685a16f4091 /src/monitor-api.inc
parent1a64df64ca126fb1e0dbe08c432d3c015d4ac458 (diff)
generate skeleton from OpenAPI 3
Change-Id: Ia2c9d42a12e9b425d34a3a70ae255d82a9320e8c Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src/monitor-api.inc')
-rw-r--r--src/monitor-api.inc85
1 files changed, 49 insertions, 36 deletions
diff --git a/src/monitor-api.inc b/src/monitor-api.inc
index 4c6e2f82..71c2a029 100644
--- a/src/monitor-api.inc
+++ b/src/monitor-api.inc
@@ -1,57 +1,70 @@
-static const char _afb_description_v2_[] =
- "{\"namespace\":\"urn:AGL:binding\",\"api\":\"monitor\",\"doc\":\"monitor"
- " the bindings\",\"verbs\":{\"set\":{\"doc\":\"set various values\",\"per"
- "missions\":{\"$ref\":\"#/permissions/set\"},\"LOA\":{\"minimum\":0},\"re"
- "quest\":{\"$ref\":\"#/types/set-request\"},\"response\":{\"$ref\":\"#/ty"
- "pes/set-response\"}},\"get\":{\"doc\":\"get the verbosity of apis\",\"pe"
- "rmissions\":{\"$ref\":\"#/permissions/get-or-set\"},\"LOA\":{\"minimum\""
- ":0},\"request\":{\"$ref\":\"#/types/get-request\"},\"response\":{\"$ref\""
- ":\"#/types/get-response\"}}},\"permissions\":{\"get\":{\"permission\":\""
- "urn:AGL:permission::platform:monitor:get\"},\"set\":{\"permission\":\"ur"
- "n:AGL:permission::platform:monitor:set\"},\"get-or-set\":{\"anyOf\":[{\""
- "$ref\":\"#/permissions/get\"},{\"$ref\":\"#/permissions/set\"}]}},\"type"
- "s\":{\"set-request\":{\"type\":\"object\",\"properties\":{\"verbosity\":"
- "{\"$ref\":\"#/types/set-verbosity\"}}},\"set-response\":{\"type\":\"obje"
- "ct\"},\"set-verbosity\":{\"anyOf\":[{\"$ref\":\"#/types/verbosity-map\"}"
- ",{\"$ref\":\"#/types/verbosity-level\"}]},\"get-request\":{\"type\":\"ob"
- "ject\",\"properties\":{\"verbosity\":{\"$ref\":\"#/types/get-verbosity\""
- "},\"apis\":{\"$ref\":\"#/types/get-apis\"}}},\"get-response\":{\"type\":"
- "\"object\",\"properties\":{\"verbosity\":{\"$ref\":\"#/types/verbosity-m"
- "ap\"},\"apis\":{\"type\":\"object\"}}},\"get-verbosity\":{\"anyOf\":[{\""
- "type\":\"boolean\"},{\"type\":\"array\",\"items\":{\"type\":\"string\"}}"
- ",{\"type\":\"object\"}]},\"get-apis\":{\"anyOf\":[{\"type\":\"boolean\"}"
- ",{\"type\":\"array\",\"items\":{\"type\":\"string\"}},{\"type\":\"object"
- "\"}]},\"verbosity-map\":{\"type\":\"object\",\"patternProperties\":{\"^."
- "*$\":{\"$ref\":\"#/types/verbosity-level\"}}},\"verbosity-level\":{\"enu"
- "m\":[\"debug\",3,\"info\",2,\"notice\",\"warning\",1,\"error\",0]}},\"me"
- "ta-binding\":{\"prefix\":\"f_\",\"postfix\":\"\",\"start\":null,\"oneven"
- "t\":null,\"init\":null,\"scope\":\"static\",\"private\":true}}"
+static const char _afb_description_v2_monitor[] =
+ "{\"openapi\":\"3.0.0\",\"info\":{\"description\":\"\",\"title\":\"monito"
+ "r\",\"version\":\"1.0\",\"x-binding\":{\"version\":2,\"prefix\":\"f_\",\""
+ "postfix\":\"\",\"start\":null,\"onevent\":null,\"init\":null,\"scope\":\""
+ "static\",\"private\":true}},\"servers\":[{\"url\":\"ws://{host}:{port}/a"
+ "pi/monitor\",\"description\":\"The API server.\",\"variables\":{\"host\""
+ ":{\"default\":\"localhost\"},\"port\":{\"default\":\"1234\"}},\"x-afb-ev"
+ "ents\":[{\"$ref\":\"#/components/schemas/afb-event\"}]}],\"components\":"
+ "{\"schemas\":{\"afb-reply\":{\"$ref\":\"#/components/schemas/afb-reply-v"
+ "1\"},\"afb-event\":{\"$ref\":\"#/components/schemas/afb-event-v1\"},\"af"
+ "b-reply-v1\":{\"title\":\"Generic response.\",\"type\":\"object\",\"requ"
+ "ired\":[\"jtype\",\"request\"],\"properties\":{\"jtype\":{\"const\":\"af"
+ "b-reply\"},\"request\":{\"type\":\"object\",\"required\":[\"status\"],\""
+ "properties\":{\"status\":{\"type\":\"string\"},\"info\":{\"type\":\"stri"
+ "ng\"},\"token\":{\"type\":\"string\"},\"uuid\":{\"type\":\"string\"},\"r"
+ "eqid\":{\"type\":\"string\"}}},\"response\":{\"type\":\"object\"}}},\"af"
+ "b-event-v1\":{\"type\":\"object\",\"properties\":{\"jtype\":{\"type\":\""
+ "string\"},\"event\":{\"type\":\"string\"},\"data\":{\"type\":\"object\"}"
+ "}}},\"x-permissions\":{\"set\":{\"permission\":\"urn:AGL:permission:moni"
+ "tor:public:set\"},\"get\":{\"permission\":\"urn:AGL:permission:monitor:p"
+ "ublic:get\"},\"get-or-set\":{\"anyOf\":[{\"$ref\":\"#/components/x-permi"
+ "ssions/get\"},{\"$ref\":\"#/components/x-permissions/set\"}]}}},\"paths\""
+ ":{\"/get\":{\"description\":\"Get monitoring data.\",\"x-permissions\":{"
+ "\"$ref\":\"#/components/x-permissions/get-or-set\"},\"get\":{\"parameter"
+ "s\":[{\"in\":\"query\",\"name\":\"filter\",\"required\":false,\"schema\""
+ ":{\"type\":\"object\",\"properties\":{\"event\":{\"type\":\"string\"}}}}"
+ "],\"responses\":{\"200\":{\"description\":\"A complex object array respo"
+ "nse\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/compon"
+ "ents/schemas/afb-reply\"}}}}}}},\"/set\":{\"description\":\"Set monitori"
+ "ng actions.\",\"x-permissions\":{\"$ref\":\"#/components/x-permissions/s"
+ "et\"},\"get\":{\"parameters\":[{\"in\":\"query\",\"name\":\"filter\",\"r"
+ "equired\":false,\"schema\":{\"type\":\"object\",\"properties\":{\"event\""
+ ":{\"type\":\"string\"}}}}],\"responses\":{\"200\":{\"description\":\"A c"
+ "omplex object array response\",\"content\":{\"application/json\":{\"sche"
+ "ma\":{\"$ref\":\"#/components/schemas/afb-reply\"}}}}}}}}}"
;
+static const struct afb_auth _afb_auths_v2_monitor[] = {
+ { .type = afb_auth_Permission, .text = "urn:AGL:permission:monitor:public:set" },
+ { .type = afb_auth_Permission, .text = "urn:AGL:permission:monitor:public:get" },
+ { .type = afb_auth_Or, .first = &_afb_auths_v2_monitor[1], .next = &_afb_auths_v2_monitor[0] }
+};
+
static void f_get(struct afb_req req);
static void f_set(struct afb_req req);
-static const struct afb_verb_v2 _afb_verbs_v2_[] = {
+static const struct afb_verb_v2 _afb_verbs_v2_monitor[] = {
{
.verb = "get",
.callback = f_get,
- .auth = NULL,
- .session = AFB_SESSION_LOA_GE_0,
+ .auth = &_afb_auths_v2_monitor[2],
+ .session = 0,
},
{
.verb = "set",
.callback = f_set,
- .auth = NULL,
- .session = AFB_SESSION_LOA_GE_0,
+ .auth = &_afb_auths_v2_monitor[0],
+ .session = 0,
},
{ .verb = NULL }
};
-static const struct afb_binding_v2 _afb_binding_v2_ = {
+static const struct afb_binding_v2 _afb_binding_v2_monitor = {
.api = "monitor",
- .specification = _afb_description_v2_,
- .verbs = _afb_verbs_v2_,
+ .specification = _afb_description_v2_monitor,
+ .verbs = _afb_verbs_v2_monitor,
.init = NULL,
.start = NULL,
.onevent = NULL,