X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fmonitor-api.inc;h=71c2a029a10a8f7b9291fcb788b53d516f0eb468;hb=ae6f684d830871e81b0b4168424f6a4873eabbff;hp=4c6e2f8296398bd29a94a4a40e02880505edd58a;hpb=1a64df64ca126fb1e0dbe08c432d3c015d4ac458;p=src%2Fapp-framework-binder.git 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,