summaryrefslogtreecommitdiffstats
path: root/low-can-binding/binding
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-07-25 18:38:09 +0200
committerRomain Forlot <romain.forlot@iot.bzh>2017-07-25 18:38:09 +0200
commitbd678860b97c8a2c06d60fdb9f963022f3ba6e68 (patch)
treeed318366fd4674263dbb6901542edf5c79ed6cf2 /low-can-binding/binding
parente0449e4c19c1fff4fde1d38b9d3506f9bf366988 (diff)
First draft API definition for Appfw Genskel.
Change-Id: I3547560ebfa0fbc484bf411ce7c08011db6f64b1 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'low-can-binding/binding')
-rw-r--r--low-can-binding/binding/low-can-apidef.json207
1 files changed, 207 insertions, 0 deletions
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"}
+ }
+ }
+ }
+ }
+
+