{
	"openapi": "3.0.0",
	"$schema": "http:iot.bzh/download/openapi/schema-3.0/default-schema.json",
	"info": {
		"description": "",
		"title": "signals-composer-service",
		"version": "4.0",
		"x-binding-c-generator": {
			"api": "signal-composer",
			"version": 2,
			"prefix": "",
			"postfix": "",
			"start": null ,
			"onevent": "onEvent",
			"preinit": "loadConf",
			"init": "execConf",
			"scope": "",
			"private": false
		}
	},
	"servers": [
		{
		"url": "ws://{host}:{port}/api/monitor",
		"description": "Signals composer API connected to low level AGL services",
		"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": {
		},
		"responses": {
			"200": {
				"description": "A complex object array response",
				"content": {
					"application/json": {
						"schema": {
							"$ref": "#/components/schemas/afb-reply"
						}
					}
				}
			}
	}
	},
	"paths": {
		"/subscribe": {
			"description": "Subscribe to a signal object",
			"parameters": [
				{
					"in": "query",
					"name": "event",
					"required": false,
					"schema": { "type": "string" }
				}
			],
			"responses": {
				"200": {"$ref": "#/components/responses/200"}
			}
		},
		"/unsubscribe": {
			"description": "Unsubscribe previously suscribed signal objects.",
			"parameters": [
				{
					"in": "query",
					"name": "event",
					"required": false,
					"schema": { "type": "string" }
				}
			],
			"responses": {
				"200": {"$ref": "#/components/responses/200"}
			}
		},
		"/get": {
			"description": "Get informations about a resource or element",
			"responses": {
				"200": {"$ref": "#/components/responses/200"}
			}
		},
		"/list": {
			"description": "List all signals already configured",
			"responses": {
				"200": {"$ref": "#/components/responses/200"}
			}
		},
		"/loadConf": {
			"description": "Load config file in directory passed as argument searching for pattern 'sig' in filename",
			"parameters": [
				{
					"in": "query",
					"name": "path",
					"required": true,
					"schema": { "type": "string"}
				}
			],
			"responses": {
				"200": {"$ref": "#/components/responses/200"}
			}
		}
	}
}