-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathswagger.json
More file actions
1 lines (1 loc) · 12.9 KB
/
Copy pathswagger.json
File metadata and controls
1 lines (1 loc) · 12.9 KB
1
{"swagger":"2.0","info":{"title":"Thingoo REST API","contact":{"name":"Bartlomiej Rasztabiga","url":"https://github.com/BartlomiejRasztabiga","email":"contact@rasztabiga.me"}},"host":"localhost","basePath":"/","tags":[{"name":"device-controller","description":"Device Controller"},{"name":"entity-controller","description":"Entity Controller"},{"name":"material-icons-controller","description":"Material Icons Controller"},{"name":"reading-controller","description":"Reading Controller"},{"name":"user-controller","description":"User Controller"}],"paths":{"/devices":{"get":{"tags":["device-controller"],"summary":"getAllDevices","operationId":"getAllDevicesUsingGET","produces":["*/*"],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/DeviceDto"}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}},"post":{"tags":["device-controller"],"summary":"setupDevice","operationId":"setupDeviceUsingPOST","consumes":["application/json"],"produces":["*/*"],"parameters":[{"in":"body","name":"setupDeviceDto","description":"setupDeviceDto","required":true,"schema":{"$ref":"#/definitions/SetupDeviceDto"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/DeviceDto"}},"201":{"description":"Created"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}},"/devices/{id}":{"get":{"tags":["device-controller"],"summary":"getDeviceById","operationId":"getDeviceByIdUsingGET","produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"integer","format":"int32"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/DeviceDto"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}},"put":{"tags":["device-controller"],"summary":"updateDeviceById","operationId":"updateDeviceByIdUsingPUT","consumes":["application/json"],"produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"integer","format":"int32"},{"in":"body","name":"updateDeviceDto","description":"updateDeviceDto","required":true,"schema":{"$ref":"#/definitions/UpdateDeviceDto"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/DeviceDto"}},"201":{"description":"Created"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}},"delete":{"tags":["device-controller"],"summary":"deleteDeviceById","operationId":"deleteDeviceByIdUsingDELETE","produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"integer","format":"int32"}],"responses":{"200":{"description":"OK"},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}}},"patch":{"tags":["device-controller"],"summary":"patchDeviceById","operationId":"patchDeviceByIdUsingPATCH","consumes":["application/json"],"produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"integer","format":"int32"},{"in":"body","name":"patch","description":"patch","required":true,"schema":{"type":"object"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/DeviceDto"}},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}}}},"/devices/{id}/entities":{"get":{"tags":["device-controller"],"summary":"getEntitiesForDevice","operationId":"getEntitiesForDeviceUsingGET","produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"integer","format":"int32"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/EntityDto"}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}},"/entities/{id}":{"get":{"tags":["entity-controller"],"summary":"getEntityById","operationId":"getEntityByIdUsingGET","produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"integer","format":"int32"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/EntityDto"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}},"post":{"tags":["entity-controller"],"summary":"postNewCommand","operationId":"postNewCommandUsingPOST","consumes":["application/json"],"produces":["*/*"],"parameters":[{"in":"body","name":"command","description":"command","required":true,"schema":{"$ref":"#/definitions/NewCommandDto"}},{"name":"id","in":"path","description":"id","required":true,"type":"integer","format":"int32"}],"responses":{"200":{"description":"OK"},"201":{"description":"Created"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}},"put":{"tags":["entity-controller"],"summary":"updateEntityById","operationId":"updateEntityByIdUsingPUT","consumes":["application/json"],"produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"integer","format":"int32"},{"in":"body","name":"updateEntityDto","description":"updateEntityDto","required":true,"schema":{"$ref":"#/definitions/UpdateEntityDto"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/EntityDto"}},"201":{"description":"Created"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}},"patch":{"tags":["entity-controller"],"summary":"patchEntityById","operationId":"patchEntityByIdUsingPATCH","consumes":["application/json"],"produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"integer","format":"int32"},{"in":"body","name":"patch","description":"patch","required":true,"schema":{"type":"object"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/EntityDto"}},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}}}},"/entities/{id}/readings":{"get":{"tags":["entity-controller"],"summary":"getAllReadingsForEntity","operationId":"getAllReadingsForEntityUsingGET","produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"integer","format":"int32"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/ReadingDto"}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}},"/entities/{id}/readings/latest":{"get":{"tags":["entity-controller"],"summary":"getLatestReadingForEntity","operationId":"getLatestReadingForEntityUsingGET","produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"integer","format":"int32"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ReadingDto"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}},"/icons":{"get":{"tags":["material-icons-controller"],"summary":"getAllIcons","operationId":"getAllIconsUsingGET","produces":["*/*"],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/MaterialIcon"}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}},"/readings":{"get":{"tags":["reading-controller"],"summary":"getAllReadingsByDeviceKeyAndEntityKey","operationId":"getAllReadingsByDeviceKeyAndEntityKeyUsingGET","produces":["*/*"],"parameters":[{"name":"device_key","in":"query","description":"device_key","required":true,"type":"string"},{"name":"entity_key","in":"query","description":"entity_key","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/ReadingDto"}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}},"post":{"tags":["reading-controller"],"summary":"createNewReading","operationId":"createNewReadingUsingPOST","consumes":["application/json"],"produces":["*/*"],"parameters":[{"in":"body","name":"saveReadingDto","description":"saveReadingDto","required":true,"schema":{"$ref":"#/definitions/SaveReadingDto"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ReadingDto"}},"201":{"description":"Created"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}},"/readings/latest":{"get":{"tags":["reading-controller"],"summary":"getLatestReadingByDeviceKeyAndEntityKey","operationId":"getLatestReadingByDeviceKeyAndEntityKeyUsingGET","produces":["*/*"],"parameters":[{"name":"device_key","in":"query","description":"device_key","required":true,"type":"string"},{"name":"entity_key","in":"query","description":"entity_key","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ReadingDto"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}},"/users":{"get":{"tags":["user-controller"],"summary":"getAllUsers","operationId":"getAllUsersUsingGET","produces":["*/*"],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/User"}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}},"/users/me":{"get":{"tags":["user-controller"],"summary":"getCurrentUser","operationId":"getCurrentUserUsingGET","produces":["*/*"],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/User"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}}},"securityDefinitions":{"spring_oauth":{"type":"oauth2","authorizationUrl":"https://dev.thingoo.xyz/auth/realms/Thingoo/protocol/openid-connect/auth","tokenUrl":"https://dev.thingoo.xyz/auth/realms/Thingoo/protocol/openid-connect/token","flow":"accessCode"}},"definitions":{"DeviceDto":{"type":"object","required":["entities","id","key","macAddress"],"properties":{"displayName":{"type":"string"},"entities":{"type":"array","items":{"$ref":"#/definitions/EntityDto"}},"icon":{"$ref":"#/definitions/MaterialIconRes"},"id":{"type":"integer","format":"int32"},"key":{"type":"string"},"macAddress":{"type":"string"}},"title":"DeviceDto"},"EntityDto":{"type":"object","required":["id","key","type","unitDisplayName","valueType"],"properties":{"displayName":{"type":"string"},"icon":{"$ref":"#/definitions/MaterialIconRes"},"id":{"type":"integer","format":"int32"},"key":{"type":"string"},"type":{"type":"string","enum":["ACTUATOR","SENSOR"]},"unitDisplayName":{"type":"string"},"valueType":{"type":"string","enum":["BOOLEAN","DECIMAL","INTEGER","STRING"]}},"title":"EntityDto"},"MaterialIcon":{"type":"object","required":["displayName","iconKey","name"],"properties":{"displayName":{"type":"string"},"iconKey":{"type":"string"},"name":{"type":"string"}},"title":"MaterialIcon"},"MaterialIconReq":{"type":"object","required":["displayName","iconKey"],"properties":{"displayName":{"type":"string"},"iconKey":{"type":"string"}},"title":"MaterialIconReq"},"MaterialIconRes":{"type":"object","required":["displayName","iconKey","name"],"properties":{"displayName":{"type":"string"},"iconKey":{"type":"string"},"name":{"type":"string"}},"title":"MaterialIconRes"},"NewCommandDto":{"type":"object","properties":{"value":{"type":"string"}},"title":"NewCommandDto"},"ReadingDto":{"type":"object","required":["id","timestamp","value"],"properties":{"id":{"type":"integer","format":"int32"},"timestamp":{"type":"string","format":"date-time"},"value":{"type":"string"}},"title":"ReadingDto"},"SaveReadingDto":{"type":"object","required":["deviceKey","entityKey","value"],"properties":{"deviceKey":{"type":"string"},"entityKey":{"type":"string"},"value":{"type":"string"}},"title":"SaveReadingDto"},"SetupDeviceDto":{"type":"object","required":["entities","key","macAddress"],"properties":{"entities":{"type":"array","items":{"$ref":"#/definitions/SetupEntityDto"}},"key":{"type":"string"},"macAddress":{"type":"string"}},"title":"SetupDeviceDto"},"SetupEntityDto":{"type":"object","required":["key","type","unitDisplayName","valueType"],"properties":{"key":{"type":"string"},"type":{"type":"string","enum":["ACTUATOR","SENSOR"]},"unitDisplayName":{"type":"string"},"valueType":{"type":"string","enum":["BOOLEAN","DECIMAL","INTEGER","STRING"]}},"title":"SetupEntityDto"},"UpdateDeviceDto":{"type":"object","properties":{"displayName":{"type":"string"},"icon":{"$ref":"#/definitions/MaterialIconReq"}},"title":"UpdateDeviceDto"},"UpdateEntityDto":{"type":"object","properties":{"displayName":{"type":"string"},"icon":{"$ref":"#/definitions/MaterialIconReq"}},"title":"UpdateEntityDto"},"User":{"type":"object","required":["email","enabled","firstName","id","lastName","username"],"properties":{"email":{"type":"string"},"enabled":{"type":"boolean"},"firstName":{"type":"string"},"id":{"type":"string","format":"uuid"},"lastName":{"type":"string"},"username":{"type":"string"}},"title":"User"}}}