Skip to content

Instantly share code, notes, and snippets.

@MartinMuzatko
Created August 27, 2021 08:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MartinMuzatko/3bcb05865293d5417bab4548954a3bd3 to your computer and use it in GitHub Desktop.
Save MartinMuzatko/3bcb05865293d5417bab4548954a3bd3 to your computer and use it in GitHub Desktop.
{"openapi":"3.0.1","info":{"title":"SICON Gateway REST API","version":"1.0.0","description":"This API provides access to the gateway database and its adapters, devices and spawned errors."},"host":"a","servers":[{"url":"/api/v1"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"security":[{"bearerAuth":[]}],"swagger":"2.0","paths":{"/app-catalog":{"get":{"security":[{"bearerAuth":[]}],"tags":["appCatalog"],"description":"Serves a list of apps from the catalog","produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}}},"/apps":{"get":{"tags":["app"],"security":[{"bearerAuth":[]}],"description":"Serves a list of installed apps plus the default one","produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}},"post":{"security":[{"bearerAuth":[]}],"description":"Triggers the installation of a new app","tags":["app"],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}}},"/apps/{AppID}":{"get":{"tags":["app"],"security":[{"bearerAuth":[]}],"description":"Serves details to the specified app","parameters":[{"$ref":"#/parameters/AppID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"App not found"}}},"put":{"security":[{"bearerAuth":[]}],"tags":["app"],"description":"Updates app data","parameters":[{"$ref":"#/parameters/AppID"},{"$ref":"#/parameters/AppName"},{"$ref":"#/parameters/AppDockerImage"},{"$ref":"#/parameters/AppMaxInstances"},{"$ref":"#/parameters/AppRunType"},{"$ref":"#/parameters/AppSystem"},{"$ref":"#/parameters/AppListed"},{"$ref":"#/parameters/AppEnabled"},{"$ref":"#/parameters/AppContainerName"}],"consumes":["application/json"],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"App not found"}}},"delete":{"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/parameters/AppID"}],"tags":["app"],"responses":{"200":{"description":"OK"},"204":{"description":"No content"},"401":{"description":"Authorization failed"},"404":{"description":"App not found"}}}},"/apps/{AppID}/update":{"get":{"tags":["app"],"security":[{"bearerAuth":[]}],"description":"Serves the status of the update","parameters":[{"$ref":"#/parameters/AppID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"App not found"}}},"post":{"tags":["app"],"security":[{"bearerAuth":[]}],"description":"updates the app - in case of `backend` the whole system","parameters":[{"$ref":"#/parameters/AppID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"App not found"}}}},"/device-class/ioddless":{"get":{"security":[{"bearerAuth":[]}],"tags":["deviceClass"],"description":"Serves a list of DeviceClasses that are not populated with a iodd yet","produces":["application/json"],"responses":{"200":{"description":"OK"}}}},"/device-class/device-files":{"get":{"security":[{"bearerAuth":[]}],"tags":["deviceClass"],"description":"Serves a list of device files, that are installed. Parameters are VendorID, VendorName, DeviceID, ProductName, Filename, Filetype","produces":["application/json"],"responses":{"200":{"description":"OK"}}}},"/device-image/{Filename}":{"get":{"tags":["device"],"description":"Get device image","parameters":[{"$ref":"#/parameters/Filename"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Device file not found"}}}},"/devices":{"get":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"Serves a list of devices","parameters":[{"$ref":"#/parameters/Limit"},{"$ref":"#/parameters/Offset"},{"$ref":"#/parameters/Properties"},{"$ref":"#/parameters/Filter"},{"$ref":"#/parameters/Group"},{"$ref":"#/parameters/Count"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}}},"/devices/{ID}/reporting-export":{"get":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"Serves a csv file containing the reporting data of the given device","parameters":[{"$ref":"#/parameters/ID"}],"produces":["text/csv"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"},"415":{"description":"Unsupported media type"}}}},"/devices/{ID}/events-export":{"get":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"Serves a csv file containing the events of the given device","parameters":[{"$ref":"#/parameters/ID"}],"produces":["text/csv"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"},"415":{"description":"Unsupported media type"}}}},"/devices/{ID}/event-groups":{"get":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"Serves a list of event groups for the given device","parameters":[{"$ref":"#/parameters/ID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"}}}},"/devices/{ID}/event-group-data/aggregated":{"get":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"Serves the aggregate values of the event group data for the given device as defined in the event group","parameters":[{"$ref":"#/parameters/ID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"}}}},"/devices/{ID}/event-group-data/trends":{"get":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"Serves the trends of the event group data for the given device","parameters":[{"$ref":"#/parameters/ID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"}}}},"/devices/{ID}/event-group-data/history":{"get":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"Serves all values of the event group data for the given device","parameters":[{"$ref":"#/parameters/ID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"}}}},"/devices/missing-device-description-files":{"get":{"security":[{"bearerAuth":[]}],"tags":["device"],"description":"Serves a list of objects of device parameters (VendorID, VendorName, DeviceID, ProductName), whose DeviceInstance is lacking a device description file, like an iodd or an sdd, needed for successful registration","produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"}}}},"/devices/counter":{"get":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"Serves the reporting, replay and event count over all devices","produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}}},"/devices/connectivity":{"get":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"Serves the number of connected and disconnected devices and the maximum number of devices, that can be registered.","produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}}},"/devices/{ID}":{"get":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"Get device specific information","parameters":[{"$ref":"#/parameters/ID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"}}},"put":{"security":[{"bearerAuth":[]}],"tags":["device"],"description":"Update device","consumes":["application/json"],"produces":["application/json"],"responses":{"200":{"description":"OK"},"400":{"description":"Bad request"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"}}},"delete":{"security":[{"bearerAuth":[]}],"tags":["device"],"description":"Devices/:ID","responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"}}}},"/devices/{id}/update-available":{"get":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"check if there is a device description file update available for the given device.","produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"}}}},"/devices/{id}/update":{"post":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"updates the device description file of the given device.","produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"}}}},"/devices/{id}/data":{"get":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"Get device ISDU information","parameters":[{"$ref":"#/parameters/ID"},{"$ref":"#/parameters/Limit"},{"$ref":"#/parameters/Offset"},{"$ref":"#/parameters/Properties"},{"$ref":"#/parameters/Filter"},{"$ref":"#/parameters/Group"},{"$ref":"#/parameters/DataGroup"},{"$ref":"#/parameters/Grouping"},{"$ref":"#/parameters/Count"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"}}}},"/devices/{id}/data/{group}":{"get":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"Get device ISDU information","parameters":[{"$ref":"#/parameters/ID"},{"$ref":"#/parameters/Limit"},{"$ref":"#/parameters/Offset"},{"$ref":"#/parameters/Properties"},{"$ref":"#/parameters/Filter"},{"$ref":"#/parameters/Group"},{"$ref":"#/parameters/DataGroup"},{"$ref":"#/parameters/Grouping"},{"$ref":"#/parameters/Count"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"}}}},"/devices/{id}/events/type-count":{"get":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"Serves the number of occurred event types of a given device","parameters":[{"$ref":"#/parameters/ID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"}}}},"/devices/{id}/events/code-count":{"get":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"Serves the number of occurred event codes of a given device","parameters":[{"$ref":"#/parameters/ID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"}}}},"/devices/{id}/reporting":{"get":{"security":[{"basicAuth":[]}],"parameters":[{"$ref":"#/parameters/ID"},{"$ref":"#/parameters/ReportingRangeStart"},{"$ref":"#/parameters/ReportingRangeEnd"},{"$ref":"#/parameters/ReportingProperties"},{"$ref":"#/parameters/ReportingSamples"},{"$ref":"#/parameters/ReportingSource"}],"tags":["device"],"description":"XXXX","produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}}},"/devices/{id}/reporting-config":{"get":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"Serves device Reporting Config","parameters":[{"$ref":"#/parameters/ID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"}}}},"/devices/{ID}/heatmap":{"get":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"Serves device heatmap","parameters":[{"$ref":"#/parameters/ID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"400":{"description":"Bad request"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"}}}},"/devices/{id}/parameters/{index}":{"post":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"Send a command to the device","parameters":[{"$ref":"#/parameters/ID"},{"$ref":"#/parameters/Index"}],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"}}},"put":{"security":[{"basicAuth":[]}],"tags":["device"],"description":"Update a device parameter index value","parameters":[{"$ref":"#/parameters/ID"},{"$ref":"#/parameters/Index"}],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Device not found"}}}},"/events":{"get":{"security":[{"basicAuth":[]}],"tags":["event"],"description":"Serves a list of events","parameters":[{"$ref":"#/parameters/Limit"},{"$ref":"#/parameters/Offset"},{"$ref":"#/parameters/Properties"},{"$ref":"#/parameters/Filter"},{"$ref":"#/parameters/Group"},{"$ref":"#/parameters/Count"}],"produces":["application/json"],"responses":{"200":{"$ref":"#/responses/OK"},"401":{"description":"Authorization failed"}}}},"/event-classes":{"get":{"security":[{"basicAuth":[]}],"tags":["eventClass"],"description":"Serves a list of event classes","parameters":[{"$ref":"#/parameters/Limit"},{"$ref":"#/parameters/Offset"},{"$ref":"#/parameters/Properties"},{"$ref":"#/parameters/Filter"},{"$ref":"#/parameters/Group"},{"$ref":"#/parameters/Count"}],"produces":["application/json"],"responses":{"200":{"$ref":"#/responses/OK"},"401":{"description":"Authorization failed"}}}},"/events/{ID}":{"get":{"security":[{"basicAuth":[]}],"tags":["event"],"description":"Get a single event","parameters":[{"$ref":"#/parameters/ID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Event not found"}}}},"/events-resolved":{"get":{"security":[{"basicAuth":[]}],"tags":["event"],"description":"Serves a list of events with resolved x labels","parameters":[{"$ref":"#/parameters/Limit"},{"$ref":"#/parameters/Offset"},{"$ref":"#/parameters/Properties"},{"$ref":"#/parameters/Filter"},{"$ref":"#/parameters/Group"},{"$ref":"#/parameters/Count"}],"produces":["application/json"],"responses":{"200":{"$ref":"#/responses/OK"},"401":{"description":"Authorization failed"}}}},"/events-resolved/{ID}":{"get":{"security":[{"basicAuth":[]}],"tags":["event"],"description":"Get a single event with resolved x labels","parameters":[{"$ref":"#/parameters/ID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Event not found"}}}},"/floorplans":{"get":{"security":[{"basicAuth":[]}],"tags":["floorplan"],"description":"Serves a list of floorplans","parameters":[{"$ref":"#/parameters/Limit"},{"$ref":"#/parameters/Offset"},{"$ref":"#/parameters/Properties"},{"$ref":"#/parameters/Filter"},{"$ref":"#/parameters/Group"},{"$ref":"#/parameters/Count"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}},"post":{"security":[{"bearerAuth":[]}],"tags":["floorplan"],"description":"uploads a new floorplan","produces":["application/json"],"consumes":["multipart/form-data"],"responses":{"201":{"description":"Created"},"400":{"description":"Bad Request"},"401":{"description":"Authorization failed"}},"parameters":[{"$ref":"#/parameters/Name"},{"$ref":"#/parameters/File"}]}},"/floorplans/{id}":{"parameters":[{"$ref":"#/parameters/ID"}],"get":{"security":[{"basicAuth":[]}],"tags":["floorplan"],"description":"Get floorplan","produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}},"put":{"security":[{"bearerAuth":[]}],"tags":["floorplan"],"description":"Update floorplan","consumes":["application/json","multipart/formdata"],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}},"delete":{"security":[{"bearerAuth":[]}],"tags":["floorplan"],"description":"FloorPlans/:ID","responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Floorplan not found"}}}},"/guidds/{id}":{"get":{"security":[{"basicAuth":[]}],"tags":["guidd"],"description":"Get the JSON contents of a guidd","parameters":[{"$ref":"#/parameters/ID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}}},"/hardware":{"get":{"security":[{"basicAuth":[]}],"tags":["hardware"],"description":"Hardware","parameters":[{"$ref":"#/parameters/Limit"},{"$ref":"#/parameters/Offset"},{"$ref":"#/parameters/Properties"},{"$ref":"#/parameters/Filter"},{"$ref":"#/parameters/Group"},{"$ref":"#/parameters/Count"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}}},"/main-device-classes":{"get":{"security":[{"bearerAuth":[]}],"tags":["mainDeviceClasses"],"description":"MainDeviceClasses","parameters":[{"$ref":"#/parameters/Limit"},{"$ref":"#/parameters/Offset"},{"$ref":"#/parameters/Properties"},{"$ref":"#/parameters/Filter"},{"$ref":"#/parameters/Group"},{"$ref":"#/parameters/Count"}],"produces":["application/json"],"responses":{"200":{"description":"OK"}}}},"/main-devices":{"get":{"security":[{"bearerAuth":[]}],"tags":["mainDevice"],"description":"Serves a list of mainDevices","parameters":[{"$ref":"#/parameters/Limit"},{"$ref":"#/parameters/Offset"},{"$ref":"#/parameters/Properties"},{"$ref":"#/parameters/Filter"},{"$ref":"#/parameters/Group"},{"$ref":"#/parameters/Count"}],"produces":["application/json"],"responses":{"200":{"description":"OK","schema":null}}},"post":{"security":[{"bearerAuth":[]}],"tags":["mainDevice"],"description":"/MainDevices","produces":["application/json"],"consumes":["multipart/form-data"],"responses":{"201":{"description":"Created"},"400":{"description":"Bad Request"}},"parameters":[{"$ref":"#/parameters/MainDeviceActive"},{"$ref":"#/parameters/MainDeviceAddAddress"},{"$ref":"#/parameters/MainDeviceAllowCommands"},{"$ref":"#/parameters/MainDeviceAllowReporting"},{"$ref":"#/parameters/MainDeviceAllowEvent"},{"$ref":"#/parameters/MainDeviceAllowISDUwr"},{"$ref":"#/parameters/MainDeviceAllowPDOut"},{"$ref":"#/parameters/MainDeviceAssetID"},{"$ref":"#/parameters/DeviceClassID"},{"$ref":"#/parameters/MainDeviceCycleAwareness"},{"$ref":"#/parameters/MainDeviceIOName"},{"$ref":"#/parameters/MainDeviceIPAddress"},{"$ref":"#/parameters/MainDeviceInterfaceName"},{"$ref":"#/parameters/MainDeviceLocationPos"},{"$ref":"#/parameters/MainDeviceLocationTag"},{"$ref":"#/parameters/MainDeviceMAC"},{"$ref":"#/parameters/MainDeviceminSamplingRate"},{"$ref":"#/parameters/MainDeviceMqttProtocol"},{"$ref":"#/parameters/MainDevicePort"},{"$ref":"#/parameters/MainDeviceProtocol"},{"$ref":"#/parameters/MainDeviceSSLTLS"},{"$ref":"#/parameters/MainDeviceSubinterfaces"},{"$ref":"#/parameters/MainDeviceConfigFileUploadBody"}]}},"/main-devices/{id}":{"get":{"security":[{"bearerAuth":[]}],"tags":["mainDevice"],"description":"Get mainDevice specific information","parameters":[{"$ref":"#/parameters/ID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"}}},"delete":{"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/parameters/ID"}],"tags":["mainDevice"],"description":"MainDevices/:ID","produces":["application/json"],"responses":{"200":{"description":"OK"},"404":{"description":"MainDevice not found"}}}},"/main-devices/{id}#data":{"put":{"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/parameters/ID"},{"$ref":"#/parameters/MainDeviceBody","schema":[{"$ref":"#/definitions/putMainDevice"}]}],"tags":["mainDevice"],"description":"Update mainDevice settings","produces":["application/json"],"consumes":["application/json"],"responses":{"200":{"description":"OK"},"404":{"description":"MainDevice not found"}}}},"/main-devices/{id}#configfile":{"put":{"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/parameters/ID"},{"$ref":"#/parameters/MainDeviceConfigFileUploadBody"}],"tags":["mainDevice"],"description":"File upload for io mainDevice configuration file","produces":["application/json"],"consumes":["multipart/form-data"],"responses":{"200":{"description":"OK"},"404":{"description":"MainDevice not found"}}}},"/privileges":{"get":{"security":[{"bearerAuth":[]}],"tags":["privilege"],"description":"Serves a list of Privilege","parameters":[{"$ref":"#/parameters/Limit"},{"$ref":"#/parameters/Offset"},{"$ref":"#/parameters/Properties"},{"$ref":"#/parameters/Filter"},{"$ref":"#/parameters/Group"},{"$ref":"#/parameters/Count"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}}},"/privileges/{id}":{"get":{"security":[{"bearerAuth":[]}],"tags":["privilege"],"description":"Get Privilege specific information","parameters":[{"$ref":"#/parameters/ID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}},"put":{"security":[{"bearerAuth":[]}],"tags":["privilege"],"description":"Update Privilege","consumes":["application/json"],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}},"delete":{"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/parameters/ID"}],"tags":["privilege"],"description":"privileges/:ID","responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"},"404":{"description":"Privilege not found"}}}},"/roles":{"get":{"security":[{"bearerAuth":[]}],"tags":["role"],"description":"Serves a list of Role","parameters":[{"$ref":"#/parameters/Limit"},{"$ref":"#/parameters/Offset"},{"$ref":"#/parameters/Properties"},{"$ref":"#/parameters/Filter"},{"$ref":"#/parameters/Group"},{"$ref":"#/parameters/Count"}],"produces":["application/json"],"responses":{"200":{"description":"OK"}}}},"/roles/{id}":{"get":{"security":[{"bearerAuth":[]}],"tags":["role"],"description":"Get Role specific information","parameters":[{"$ref":"#/parameters/ID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"}}},"put":{"security":[{"bearerAuth":[]}],"tags":["role"],"description":"Update Role","consumes":["application/json"],"produces":["application/json"],"responses":{"200":{"description":"OK"}}},"delete":{"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/parameters/ID"}],"tags":["role"],"description":"roles/:ID","responses":{"200":{"description":"OK"},"404":{"description":"Role not found"}}}},"/server":{"get":{"tags":["server"],"description":"Returns the Server configuration","produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}},"security":[{"bearerAuth":[]}]},"put":{"tags":["server"],"description":"Updates the server configufration","produces":["application/json"],"consumes":["application/json"],"parameters":[{"name":"server","in":"body","description":"Server object that overwrites the existing IPs, ports, WLAN Settings and access","required":true,"schema":{"type":"object"}}],"responses":{"200":{"description":"Modified"},"400":{"description":"Some of the fields fail validation"},"401":{"description":"Authorization failed"}},"security":[{"bearerAuth":[]}]}},"/server/ping":{"get":{"parameters":[{"$ref":"#/parameters/IPAddress"},{"$ref":"#/parameters/Timeout"}],"tags":["server"],"description":"ping an OT or IT device connected to the sicon box","produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}},"security":[{"bearerAuth":[]}]}},"/server/status":{"get":{"tags":["server"],"description":"get overall server status","produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}},"security":[{"bearerAuth":[]}]}},"/server/reboot":{"get":{"tags":["server"],"description":"reboot server","responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}},"security":[{"bearerAuth":[]}]}},"/server/shutdown":{"get":{"tags":["server"],"description":"shutdown server","responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}},"security":[{"bearerAuth":[]}]}},"/server/service-status":{"get":{"tags":["server"],"description":"Status of the LEDs and LAN services","responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}},"security":[{"bearerAuth":[]}]}},"/server/scan":{"get":{"tags":["server"],"description":"Scan for IPs on the interfaces of the hardware","responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}},"security":[{"bearerAuth":[]}]}},"/server/information":{"get":{"tags":["server"],"description":"Get hardware data - CPU, memory, etc","responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}},"security":[{"bearerAuth":[]}]}},"/server/timezones":{"get":{"security":[{"bearerAuth":[]}],"tags":["server","timezone"],"description":"Serves a list of timezones","produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}}},"/server/timezone":{"get":{"security":[{"bearerAuth":[]}],"tags":["server","timezone"],"description":"Serves the box` timezone","produces":["application/json"],"responses":{"200":{"description":"OK"}}},"put":{"security":[{"basicAuth":[]}],"tags":["server","timezone"],"description":"Sets the box` timezones","responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}}},"/users":{"get":{"security":[{"bearerAuth":[]}],"tags":["user"],"description":"Serves a list of User","parameters":[{"$ref":"#/parameters/Limit"},{"$ref":"#/parameters/Offset"},{"$ref":"#/parameters/Properties"},{"$ref":"#/parameters/Filter"},{"$ref":"#/parameters/Group"},{"$ref":"#/parameters/Count"}],"produces":["application/json"],"responses":{"200":{"description":"OK"}}}},"/users/{id}":{"get":{"security":[{"bearerAuth":[]}],"tags":["user"],"description":"Get User specific information","parameters":[{"$ref":"#/parameters/ID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"}}},"put":{"security":[{"bearerAuth":[]}],"tags":["user"],"description":"Update User","consumes":["application/json"],"produces":["application/json"],"responses":{"200":{"description":"OK"}}},"delete":{"security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/parameters/ID"}],"tags":["user"],"description":"Users/:ID","responses":{"200":{"description":"OK"},"404":{"description":"User not found"}}}},"/vendors":{"get":{"security":[{"basicAuth":[]}],"parameters":[{"$ref":"#/parameters/Order"}],"tags":["vendors"],"responses":{"200":{"schema":{"$ref":"#/definitions/Vendor"}},"401":{"description":"Authorization failed"}}}},"/vendors/device-count":{"get":{"security":[{"basicAuth":[]}],"tags":["vendors"],"responses":{"200":{"schema":{"$ref":"#/definitions/Vendor"}},"401":{"description":"Authorization failed"}}}},"/version":{"get":{"security":[{"bearerAuth":[]}],"tags":["version"],"description":"Get a changelog of all versions (git tags)","parameters":[{"$ref":"#/parameters/VersionStart"},{"$ref":"#/parameters/VersionEnd"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}}},"/version/installed":{"get":{"security":[{"bearerAuth":[]}],"tags":["version"],"description":"Get currently installed version","produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}}},"/version/latest":{"get":{"security":[{"bearerAuth":[]}],"tags":["version"],"description":"Get latest (on build server) installed version","produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}}},"/version/{tag}":{"get":{"security":[{"bearerAuth":[]}],"tags":["version"],"description":"Get a specific version from upstream build server","parameters":[{"$ref":"#/parameters/VersionID"}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"401":{"description":"Authorization failed"}}}}},"definitions":{"ID":{"type":"number","description":"Unique identifier for the resource"},"MainDevice":{"type":"object","properties":{"ID":{"$ref":"#/definitions/ID"}}},"postMainDevice":{"type":"object","required":["ClassesID"],"properties":{"Active":{"type":"boolean"},"AddAddress":{"type":"string"},"AllowCommands":{"type":"boolean"},"AllowReporting":{"type":"boolean"},"AllowEvent":{"type":"boolean"},"AllowISDUwr":{"type":"boolean"},"AllowPDOut":{"type":"boolean"},"AssetID":{"type":"string"},"ClassesID":{"type":"integer"},"CycleAwareness":{"type":"boolean"},"IOName":{"type":"string"},"IPAddress":{"type":"string"},"InterfaceName":{"type":"string"},"LocationPos":{"type":"string"},"LocationTag":{"type":"string"},"MAC":{"type":"string"},"minSamplingRate":{"type":"integer"},"MqttProtocol":{"type":"string"},"Port":{"type":"integer"},"Protocol":{"type":"string"},"SSLTLS":{"type":"boolean"},"Subinterfaces":{"type":"string"}}},"putMainDevice":{"type":"object","properties":{"Active":{"type":"boolean"},"AddAddress":{"type":"string"},"AllowCommands":{"type":"boolean"},"AllowReporting":{"type":"boolean"},"AllowEvent":{"type":"boolean"},"AllowISDUwr":{"type":"boolean"},"AllowPDOut":{"type":"boolean"},"AssetID":{"type":"string"},"CycleAwareness":{"type":"boolean"},"IOName":{"type":"string"},"IPAddress":{"type":"string"},"InterfaceName":{"type":"string"},"LocationPos":{"type":"string"},"LocationTag":{"type":"string"},"MAC":{"type":"string"},"minSamplingRate":{"type":"integer"},"MqttProtocol":{"type":"string"},"Port":{"type":"integer"},"Protocol":{"type":"string"},"SSLTLS":{"type":"boolean"},"Subinterfaces":{"type":"string"}}},"App":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"dockerImage":{"type":"string"},"integration":{"type":"object"},"runSettings":{"type":"object"},"price":{"type":"integer"},"description":{"type":"string"},"allowedSerials":{"type":"object"},"public":{"type":"boolean"},"maxInstances":{"type":"integer"},"runType":{"type":"string"},"system":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"pictures":{"type":"object"},"listed":{"type":"boolean"},"enabled":{"type":"boolean"},"containerName":{"type":"string"},"loading":{"type":"boolean"},"url":{"type":"string"}}},"Device":{"type":"object","properties":{"UniqueID":{"type":"string"},"InterfaceID":{"type":"integer"},"Subinterface":{"type":"string"},"ConnectionState":{"type":"boolean"},"IODD":{"type":"string"},"GUIDD":{"type":"string"},"VendorID":{"type":"integer"},"DeviceID":{"type":"integer"},"ProductID":{"type":"string"},"SerialNumber":{"type":"integer"},"LocationTag":{"type":"string"},"LocationPos":{"type":"string"},"AssetID":{"type":"string"},"ShortName":{"type":"string"},"QRCode":{"type":"string"},"QRCodePicName":{"type":"string"},"PictureName":{"type":"string"},"IconName":{"type":"string"},"DocumentationNames":{"type":"string"},"Description":{"type":"string"},"DeviceType":{"type":"string"},"DeviceSubType":{"type":"string"}}},"Event":{"type":"object","properties":{"Description":{"type":"string"},"Cause":{"type":"string"},"Impact":{"type":"string"},"Solution":{"type":"string"}}},"Vendor":{"type":"object","properties":{"VendorID":{"type":"integer"},"VendorName":{"type":"string"},"VendorText":{"type":"string"},"VendorURL":{"type":"string"},"VendorLogo":{"type":"string"},"DeviceCount":{"type":"integer"}}}},"responses":{"OK":{"description":"OK"},"NotFoundError":{"description":"The required entity was not found"},"BadRequestError":{"description":"The required entity was not found"}},"parameters":{"Force":{"name":"force","description":"Unlocks a locked process - use with caution","in":"query","type":"boolean"},"Timeout":{"name":"timeout","description":"Defines maximum runtime for process","in":"query","type":"integer"},"Limit":{"name":"limit","description":"Defines how many items to fetch","in":"query","type":"integer","default":10},"Offset":{"name":"offset","description":"For pagination, define offset of items to fetch from","in":"query","type":"integer","default":0},"Properties":{"name":"properties","description":"Define which properties to include in each item. The format is comma separated.","in":"query","type":"string"},"Group":{"name":"group","description":"Define by what property to group the result by.\\nThis makes the resulting items an object instead of an array.\\nIf multiple properties are listed, the result is nest-grouped,\\nwith each level down in the object mapping to the corresponding nth group parameter.\\n","in":"query","type":"string"},"Filter":{"name":"filter","description":"Define a filter criteria based on fields and values","in":"query","type":"string","default":""},"Grouping":{"name":"grouping","in":"query","allowEmptyValue":true,"description":"Get the data as nested object based on a built-in preset","type":"boolean","required":false,"default":false},"Count":{"name":"count","in":"query","allowEmptyValue":true,"description":"Count the found items rather than returning the data objects","type":"boolean","required":false,"default":false},"VersionStart":{"name":"start","description":"Define first version to fetch","in":"query","type":"integer","required":true},"VersionEnd":{"name":"end","description":"Define last version to fetch","in":"query","type":"integer","required":true},"VersionID":{"name":"BuildID","description":"Build Number","in":"path","type":"integer","required":true},"DeviceClassID":{"in":"formData","type":"integer","required":false,"name":"DeviceClassID"},"MainDeviceActive":{"in":"formData","type":"boolean","required":false,"name":"Active"},"MainDeviceAddAddress":{"in":"formData","type":"string","required":false,"name":"AddAddress"},"MainDeviceAllowCommands":{"in":"formData","type":"boolean","required":false,"name":"AllowCommands"},"MainDeviceAllowReporting":{"in":"formData","type":"boolean","required":false,"name":"AllowReporting"},"MainDeviceAllowEvent":{"in":"formData","type":"boolean","required":false,"name":"AllowEvent"},"MainDeviceAllowISDUwr":{"in":"formData","type":"boolean","required":false,"name":"AllowISDUwr"},"MainDeviceAllowPDOut":{"in":"formData","type":"boolean","required":false,"name":"AllowPDOut"},"MainDeviceAssetID":{"in":"formData","type":"string","required":false,"name":"AssetID"},"MainDeviceClassesID":{"in":"formData","type":"integer","required":true,"name":"ClassesID"},"MainDeviceCycleAwareness":{"in":"formData","type":"boolean","required":false,"name":"CycleAwareness"},"MainDeviceIOName":{"in":"formData","type":"string","required":false,"name":"IOName"},"MainDeviceIPAddress":{"in":"formData","type":"string","required":true,"name":"IPAddress"},"MainDeviceInterfaceName":{"in":"formData","type":"string","required":false,"name":"InterfaceName"},"MainDeviceLocationPos":{"in":"formData","type":"string","required":false,"name":"LocationPos"},"MainDeviceLocationTag":{"in":"formData","type":"string","required":false,"name":"LocationTag"},"MainDeviceMAC":{"in":"formData","type":"string","required":false,"name":"MAC"},"MainDeviceminSamplingRate":{"in":"formData","type":"integer","required":false,"name":"minSamplingRate"},"MainDeviceMqttProtocol":{"in":"formData","type":"string","required":false,"name":"MqttProtocol"},"MainDevicePort":{"in":"formData","type":"integer","required":false,"name":"Port"},"MainDeviceProtocol":{"in":"formData","type":"string","required":false,"name":"Protocol"},"MainDeviceSSLTLS":{"in":"formData","type":"boolean","required":false,"name":"SSLTLS"},"MainDeviceSubinterfaces":{"in":"formData","type":"string","required":false,"name":"Subinterfaces"},"Code":{"name":"Code","in":"path","description":"Errorcode of the event","required":true,"type":"integer"},"IPAddress":{"name":"address","in":"query","description":"An ipv4 address","type":"string"},"Order":{"name":"order","type":"string","in":"query"},"AppName":{"in":"formData","type":"string","required":false,"name":"name"},"AppDockerImage":{"in":"formData","type":"string","required":false,"name":"dockerImage"},"AppMaxInstances":{"in":"formData","type":"integer","required":false,"name":"maxInstances"},"AppRunType":{"in":"formData","type":"string","required":false,"name":"runType"},"AppSystem":{"in":"formData","type":"string","required":false,"name":"system"},"AppListed":{"in":"formData","type":"boolean","required":false,"name":"listed"},"AppEnabled":{"in":"formData","type":"boolean","required":false,"name":"enabled"},"AppContainerName":{"in":"formData","type":"string","required":false,"name":"containerName"},"MainDeviceColumn":{"name":"Column","in":"path","description":"Single column to fetch from IO_MainDevices table","required":true,"type":"string","enum":["InterfaceID","InterfaceName","Protocol","Subinterface","SSLTLS","MAC","IPAddress","Port","AddAddress","IOName","Active","MqttProtocol","AllowPDOut","AllowCommands","AllowISDUwr","CycleAwareness","Vendor","ProductName","OrderCode","SerialNumber","AssetID","LocationTag","LocationPos","ImagePath","ConfigurationFile"]},"Column":{"name":"Column","in":"path","required":true,"type":"string"},"ColumnOrQuantity":{"name":"ColumnOrQuantity","in":"path","description":"ColumnOrQuantity","required":true,"type":"string"},"ColumnOrSubitemOrQuantity":{"name":"ColumnOrSubitemOrQuantity","in":"path","description":"ColumnOrSubitemOrQuantity","required":true,"type":"string"},"MainDeviceName":{"name":"MainDeviceName","in":"path","description":"string with the columns **IOName** and **InterfaceID**","required":true,"type":"string","default":"8_Balluff"},"MainDeviceBody":{"name":"MainDevice","in":"body","description":"MainDevice object to create","required":true,"schema":{"$ref":"#/definitions/MainDevice"}},"DeviceBody":{"name":"device","in":"body","description":"Device object","required":true,"schema":{"$ref":"#/definitions/Device"}},"MainDeviceConfigFileUploadBody":{"in":"formData","name":"ConfigurationFile","type":"file","description":"sdd or iodd config file for the MainDevice"},"DeviceID":{"name":"DeviceID","in":"path","description":"ID of the device","required":true,"type":"integer"},"Filename":{"name":"Filename","description":"A filename","in":"path","required":true,"type":"string"},"ID":{"name":"ID","description":"A unique ID identifying the item","in":"path","required":true,"type":"integer"},"AppID":{"name":"AppID","description":"A unique ID to identify an app","in":"path","required":true,"type":"string"},"Index":{"name":"index","description":"Device Parameter Index","in":"path","required":true,"type":"string"},"Pathname":{"name":"pathname","description":"pathname to identify an app","in":"path","required":true,"type":"string"},"DataGroup":{"name":"Group","in":"path","description":"might have the following values according to the name of the tables in the databases:\\n* **DeviceControl**\\n* **ISDU**\\n* **ProcessData**\\n* **Reporting**\\n","required":true,"type":"string","enum":["DeviceControl","ISDU","ProcessData","Reporting"]},"InterfaceID":{"name":"InterfaceID","in":"path","description":"InterfaceID","required":true,"type":"integer"},"LocationTag":{"name":"LocationTag","in":"path","description":"LocationTag","required":true,"type":"string","default":"UndefinedTag"},"LocationPos":{"name":"LocationPos","in":"path","description":"LocationPos","required":true,"type":"string","default":"UndefinedPos"},"AssetID":{"name":"AssetID","in":"path","description":"Unique **AssetID** - consists out of `ProductID-VendorID-DeviceID-SerialNumber`","type":"string","required":true},"QueryLocationTag":{"name":"LocationTag","in":"query","description":"LocationTag","required":true,"type":"string","default":"UndefinedTag"},"QueryLocationPos":{"name":"LocationPos","in":"query","description":"LocationPos","required":true,"type":"string","default":"UndefinedPos"},"QueryAssetID":{"name":"AssetID","in":"query","description":"Unique **AssetID** - consists out of `ProductID-VendorID-DeviceID-SerialNumber`","type":"string"},"NoEPP":{"name":"NoEPP","in":"path","description":"Number of **Entries** / **Page**","required":true,"type":"integer","default":10},"Page":{"name":"Page","in":"path","description":"Page","required":true,"type":"string"},"ParamName":{"name":"ParamName","in":"path","description":"ParamName","required":true,"type":"string"},"ShortName":{"name":"ShortName","in":"path","description":"ShortName","required":true,"type":"string"},"Subinterface":{"name":"Subinterface","in":"path","description":"Subinterface","required":true,"type":"string"},"SubitemOrColumn":{"name":"SubitemOrColumn","in":"path","description":"SubitemOrColumn","required":true,"type":"string"},"TimeRange":{"name":"TimeRange","in":"path","description":"**TimeRange** is a string with a character and a number `[x]` afterwards:\\n* `mi[x]` ( get all entries within the last `x` **minute/s** )\\n* `h[x]` ( get all entries within the last `x` **hour/s** )\\n* `d[x]` ( get all entries within the last `x` **day/s** )\\n* `w[x]` ( get all entries within the last `x` **weak/s** )\\n* `m[x]` ( get all entries within the last `x` **month/s** )\\n* `y[x]` ( get all entries within the last `x` **year/s** )\\n* all ( referring to all entries of the DB)\\n","required":true,"type":"string"},"TimestampAPPEARS":{"name":"TimestampAPPEARS","in":"path","description":"TimestampAPPEARS","required":true,"type":"string"},"Type":{"name":"Type","in":"path","description":"Type","required":true,"type":"string","enum":["Error","Warning","Notification","Unknown"]},"UniqueID":{"name":"UniqueID","in":"path","description":"Consists of VendorID-DeviceID-Identifier. Where Identifier is either one of Serialnumber or Interface_Subinterface","required":true,"type":"string"},"VendorID":{"name":"VendorID","in":"path","description":"VendorID","required":true,"type":"integer"},"ReportingRangeStart":{"name":"rangeStart","in":"query","description":"Defines the start of the range to search for samples","type":"integer"},"ReportingRangeEnd":{"name":"rangeEnd","in":"query","description":"Defines the end of the range to search for samples","type":"integer"},"ReportingRangeType":{"name":"rangeType","in":"query","description":"Type of range to use with range","required":true,"type":"string","enum":["cycles","time"]},"ReportingProperties":{"name":"properties","in":"query","description":"A list of properties to ask for. If empty, all properties will be returned\\nThe list is comma separated. A list of properties can be retrieved via the ReportingConfig Table (not exposed via API)\\n","type":"string"},"ReportingSamples":{"name":"samples","in":"query","description":"Defines how many samples to return, evenly spreaded across the required `range`.\\nThe default is `2`.\\n","type":"integer"},"ReportingSource":{"name":"source","in":"query","description":"Define from which sources the reporting data is aggregated from.\\nBy default, all sources are used, but can be specified with a comma separated list.\\n","type":"string"}},"securityDefinitions":{},"tags":[{"name":"appCatalog","description":"Apps downloadable from the exa cloud"},{"name":"app","description":"An app is a container pulled from the service.sicon.eco cloud registry"},{"name":"deviceClass"},{"name":"device","description":"A device is an OT unit emitting ProcessData, Events and Reporting Data"},{"name":"event","description":"Events are spawned by devices and have code, timestamp and severity"},{"name":"floorplan","description":"A floor plan is an image to locate entitites upon via x and y coordinates relative to a refernece point in the left lower corner"},{"name":"guidd","description":"A GUIDD is a device description file for the user interface"},{"name":"hardware","description":"Subdevices and Maindevices merged in one view"},{"name":"mainDeviceClasses","description":"mainDeviceClasses of available adapters"},{"name":"mainDevice","description":"Main devices allow to access mounted devices"},{"name":"privilege","description":"A Privilege serves a list of items"},{"name":"role","description":"A Role serves a list of items"},{"name":"server","description":"Server"},{"name":"user","description":"A User serves a list of items"},{"name":"version","description":"Get version changelogs and single versions"}]}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment