From bd678860b97c8a2c06d60fdb9f963022f3ba6e68 Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Tue, 25 Jul 2017 18:38:09 +0200 Subject: First draft API definition for Appfw Genskel. Change-Id: I3547560ebfa0fbc484bf411ce7c08011db6f64b1 Signed-off-by: Romain Forlot --- low-can-binding/binding/low-can-apidef.json | 207 ++++++++++++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 low-can-binding/binding/low-can-apidef.json diff --git a/low-can-binding/binding/low-can-apidef.json b/low-can-binding/binding/low-can-apidef.json new file mode 100644 index 0000000..f72178a --- /dev/null +++ b/low-can-binding/binding/low-can-apidef.json @@ -0,0 +1,207 @@ +{ + "openapi": "3.0.0", + "$schema": "http:iot.bzh/download/openapi/schema-3.0/default-schema.json", + "info": { + "description": "", + "title": "low-level-can-service", + "version": "4.0", + "x-binding-c-generator": { + "api": "low-can", + "version": 2, + "prefix": "", + "postfix": "", + "start": null , + "onevent": null, + "init": "initv2", + "scope": "", + "private": false + } + }, + "servers": [ + { + "url": "ws://{host}:{port}/api/monitor", + "description": "Low level CAN API.", + "variables": { + "host": { + "default": "localhost" + }, + "port": { + "default": "1234" + } + }, + "x-afb-events": [ + { + "$ref": "#/components/schemas/afb-event" + } + ] + } + ], + "components": { + "schemas": { + "afb-reply": { + "$ref": "#/components/schemas/afb-reply-v2" + }, + "afb-event": { + "$ref": "#/components/schemas/afb-event-v2" + }, + "afb-reply-v2": { + "title": "Generic response.", + "type": "object", + "required": [ "jtype", "request" ], + "properties": { + "jtype": { + "type": "string", + "const": "afb-reply" + }, + "request": { + "type": "object", + "required": [ "status" ], + "properties": { + "status": { "type": "string" }, + "info": { "type": "string" }, + "token": { "type": "string" }, + "uuid": { "type": "string" }, + "reqid": { "type": "string" } + } + }, + "response": { "type": "object" } + } + }, + "afb-event-v2": { + "type": "object", + "required": [ "jtype", "event" ], + "properties": { + "jtype": { + "type": "string", + "const": "afb-event" + }, + "event": { "type": "string" }, + "data": { "type": "object" } + } + } + }, + "x-permissions": { + "config": { + "permission": "urn:AGL:permission:low-can:public:config" + }, + "monitor": { + "permission": "urn:AGL:permission:low-can:public:monitor" + }, + "write": { + "permission": "urn:AGL:permission:low-can:platform:write" + } + }, + "responses": { + "200": { + "description": "A complex object array response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/afb-reply" + } + } + } + } + } + }, + "paths": { + "/subscribe": { + "description": "Subscribe to CAN signals events", + "parameters": [ + { + "in": "query", + "name": "event", + "required": false, + "schema": { "type": "string" } + } + ], + "responses": { + "200": {"$ref": "#/components/responses/200"} + } + } + }, + "/unsubscribe": { + "description": "Unsubscribe previously suscribed signals.", + "parameters": [ + { + "in": "query", + "name": "event", + "required": false, + "schema": { "type": "string" } + } + ], + "responses": { + "200": {"$ref": "#/components/responses/200"} + } + }, + "/auth": { + "description": "Authenticate session to be raise Level Of Assurance.", + "get": { + "x-permissions": { + "$ref": "#/components/x-permissions/write" + }, + "responses": { + "200": {"$ref": "#/components/responses/200"} + } + } + }, + "/write": { + "description": "Write a CAN messages to the CAN bus.", + "get": { + "x-permissions": { + "$ref": "#/components/x-permissions/write" + }, + "parameters": [ + { + "in": "query", + "name": "bus_name", + "required": false, + "schema": { "type": "string" } + }, + { + "in": "query", + "name": "frame", + "required": false, + "schema": { "type": "array" }, + "parameters": [ + { + "in": "query", + "name": "can_id", + "required": false, + "schema": { "type": "string" } + }, + { + "in": "query", + "name": "can_dlc", + "required": false, + "schema": { "type": "string" } + }, + { + "in": "query", + "name": "can_data", + "required": false, + "schema": { "type": "string" } + } + ] + }, + { + "in": "query", + "name": "signal_name", + "required": false, + "schema": { "type": "string" } + }, + { + "in": "query", + "name": "signal_value", + "required": false, + "schema": { "type": "integer" } + } + ], + "responses": { + "200": {"$ref": "#/components/responses/200"} + } + } + } + } + + -- cgit 1.2.3-korg