@kohost/api-client 1.0.0-beta.3 → 1.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/dist/Client.js +19632 -0
  2. package/dist/commands.js +568 -0
  3. package/dist/defs.js +196 -0
  4. package/dist/errors.js +174 -0
  5. package/dist/events.js +375 -0
  6. package/dist/models.js +3584 -0
  7. package/dist/useCases/AddDefaultScenesToRooms.js +39 -0
  8. package/dist/useCases/AddScenesToRoom.js +39 -0
  9. package/dist/useCases/AdminCreateProperty.js +39 -0
  10. package/dist/useCases/AdminDescribeProperty.js +39 -0
  11. package/dist/useCases/AdminListCustomers.js +39 -0
  12. package/dist/useCases/AdminListProperties.js +39 -0
  13. package/dist/useCases/AdminUpdateProperty.js +39 -0
  14. package/dist/useCases/BatchNotifyPreArrival.js +39 -0
  15. package/dist/useCases/CheckInReservation.js +39 -0
  16. package/dist/useCases/CheckVerificationCode.js +39 -0
  17. package/dist/useCases/CreateAlarm.js +39 -0
  18. package/dist/useCases/CreateCamera.js +39 -0
  19. package/dist/useCases/CreateCourtesy.js +39 -0
  20. package/dist/useCases/CreateDefaultScenes.js +39 -0
  21. package/dist/useCases/CreateDimmer.js +39 -0
  22. package/dist/useCases/CreateDiscoveredDevice.js +39 -0
  23. package/dist/useCases/CreateDiscoveredDeviceAssociation.js +39 -0
  24. package/dist/useCases/CreateIntegration.js +39 -0
  25. package/dist/useCases/CreateIntegrationDeviceMapEntry.js +39 -0
  26. package/dist/useCases/CreateLock.js +39 -0
  27. package/dist/useCases/CreateReservation.js +39 -0
  28. package/dist/useCases/CreateRoom.js +39 -0
  29. package/dist/useCases/CreateRoomInSpace.js +39 -0
  30. package/dist/useCases/CreateSource.js +39 -0
  31. package/dist/useCases/CreateSpace.js +39 -0
  32. package/dist/useCases/CreateSwitch.js +39 -0
  33. package/dist/useCases/CreateThermostat.js +39 -0
  34. package/dist/useCases/CreateTicket.js +39 -0
  35. package/dist/useCases/CreateTicketMessage.js +39 -0
  36. package/dist/useCases/CreateUser.js +39 -0
  37. package/dist/useCases/CreateWindowCovering.js +39 -0
  38. package/dist/useCases/DeleteAlarm.js +39 -0
  39. package/dist/useCases/DeleteCamera.js +39 -0
  40. package/dist/useCases/DeleteCourtesy.js +39 -0
  41. package/dist/useCases/DeleteDimmer.js +39 -0
  42. package/dist/useCases/DeleteDiscoveredDevice.js +39 -0
  43. package/dist/useCases/DeleteIntegration.js +39 -0
  44. package/dist/useCases/DeleteLock.js +39 -0
  45. package/dist/useCases/DeleteReservation.js +39 -0
  46. package/dist/useCases/DeleteRoom.js +39 -0
  47. package/dist/useCases/DeleteSource.js +39 -0
  48. package/dist/useCases/DeleteSpace.js +39 -0
  49. package/dist/useCases/DeleteSwitch.js +39 -0
  50. package/dist/useCases/DeleteThermostat.js +39 -0
  51. package/dist/useCases/DeleteTicket.js +39 -0
  52. package/dist/useCases/DeleteUser.js +39 -0
  53. package/dist/useCases/DeleteWindowCovering.js +39 -0
  54. package/dist/useCases/DescribeAlarm.js +39 -0
  55. package/dist/useCases/DescribeCamera.js +39 -0
  56. package/dist/useCases/DescribeCourtesy.js +39 -0
  57. package/dist/useCases/DescribeDimmer.js +39 -0
  58. package/dist/useCases/DescribeDiscoveredDevice.js +39 -0
  59. package/dist/useCases/DescribeIntegration.js +39 -0
  60. package/dist/useCases/DescribeLock.js +39 -0
  61. package/dist/useCases/DescribeMyProperty.js +39 -0
  62. package/dist/useCases/DescribeReservation.js +39 -0
  63. package/dist/useCases/DescribeReservationCheckinStatus.js +39 -0
  64. package/dist/useCases/DescribeRoom.js +39 -0
  65. package/dist/useCases/DescribeSelf.js +39 -0
  66. package/dist/useCases/DescribeSource.js +39 -0
  67. package/dist/useCases/DescribeSpace.js +39 -0
  68. package/dist/useCases/DescribeSwitch.js +39 -0
  69. package/dist/useCases/DescribeThermostat.js +39 -0
  70. package/dist/useCases/DescribeTicket.js +39 -0
  71. package/dist/useCases/DescribeUser.js +39 -0
  72. package/dist/useCases/DescribeWindowCovering.js +39 -0
  73. package/dist/useCases/DiscoverReservations.js +39 -0
  74. package/dist/useCases/EmailUserAccountSetup.js +39 -0
  75. package/dist/useCases/ListAlarms.js +39 -0
  76. package/dist/useCases/ListCameras.js +39 -0
  77. package/dist/useCases/ListCourtesy.js +39 -0
  78. package/dist/useCases/ListDimmers.js +39 -0
  79. package/dist/useCases/ListDiscoveredDevices.js +39 -0
  80. package/dist/useCases/ListIntegrations.js +39 -0
  81. package/dist/useCases/ListLocks.js +39 -0
  82. package/dist/useCases/ListMyReservations.js +39 -0
  83. package/dist/useCases/ListMySpaces.js +39 -0
  84. package/dist/useCases/ListReservations.js +39 -0
  85. package/dist/useCases/ListRooms.js +39 -0
  86. package/dist/useCases/ListRoomsInSpace.js +39 -0
  87. package/dist/useCases/ListSources.js +39 -0
  88. package/dist/useCases/ListSpaces.js +39 -0
  89. package/dist/useCases/ListSwitches.js +39 -0
  90. package/dist/useCases/ListThermostats.js +39 -0
  91. package/dist/useCases/ListTickets.js +39 -0
  92. package/dist/useCases/ListUserReservations.js +39 -0
  93. package/dist/useCases/ListUsers.js +39 -0
  94. package/dist/useCases/ListWindowCoverings.js +39 -0
  95. package/dist/useCases/LoginGateway.js +39 -0
  96. package/dist/useCases/LoginUser.js +39 -0
  97. package/dist/useCases/MatchUserIdentification.js +39 -0
  98. package/dist/useCases/OCRDocument.js +39 -0
  99. package/dist/useCases/RefreshToken.js +39 -0
  100. package/dist/useCases/RequestLoginLink.js +39 -0
  101. package/dist/useCases/SendPreArrivalEmail.js +39 -0
  102. package/dist/useCases/SendPreArrivalSMS.js +39 -0
  103. package/dist/useCases/SendVerificationCode.js +39 -0
  104. package/dist/useCases/SetCamera.js +39 -0
  105. package/dist/useCases/SetCourtesy.js +39 -0
  106. package/dist/useCases/SetLock.js +39 -0
  107. package/dist/useCases/SetSource.js +39 -0
  108. package/dist/useCases/SetSwitch.js +39 -0
  109. package/dist/useCases/SetThermostat.js +39 -0
  110. package/dist/useCases/SetWindowCovering.js +39 -0
  111. package/dist/useCases/UpdateAlarm.js +39 -0
  112. package/dist/useCases/UpdateCamera.js +39 -0
  113. package/dist/useCases/UpdateCourtesy.js +39 -0
  114. package/dist/useCases/UpdateDimmer.js +39 -0
  115. package/dist/useCases/UpdateDiscoveredDevice.js +39 -0
  116. package/dist/useCases/UpdateIntegration.js +39 -0
  117. package/dist/useCases/UpdateLock.js +39 -0
  118. package/dist/useCases/UpdateMessageReadStatus.js +39 -0
  119. package/dist/useCases/UpdateReservation.js +39 -0
  120. package/dist/useCases/UpdateRoom.js +39 -0
  121. package/dist/useCases/UpdateSelf.js +39 -0
  122. package/dist/useCases/UpdateSource.js +39 -0
  123. package/dist/useCases/UpdateSpace.js +39 -0
  124. package/dist/useCases/UpdateSwitch.js +39 -0
  125. package/dist/useCases/UpdateThermostat.js +39 -0
  126. package/dist/useCases/UpdateTicket.js +39 -0
  127. package/dist/useCases/UpdateTicketStatus.js +39 -0
  128. package/dist/useCases/UpdateUser.js +39 -0
  129. package/dist/useCases/UpdateWindowCovering.js +39 -0
  130. package/dist/useCases/UpsertDiscoveredDevice.js +39 -0
  131. package/dist/utils.js +53 -0
  132. package/package.json +8 -2
  133. package/.eslintrc.js +0 -10
  134. package/bitbucket-pipelines.yml +0 -71
  135. package/commands/CheckInReservationCommand.js +0 -23
  136. package/commands/Command.js +0 -38
  137. package/commands/DiscoverReservationsCommand.js +0 -24
  138. package/commands/DiscoverRoomsCommand.js +0 -21
  139. package/commands/DiscoverUsersCommand.js +0 -21
  140. package/commands/OCRDocumentCommand.js +0 -20
  141. package/commands/SendEmailCommand.js +0 -24
  142. package/commands/SendSMSCommand.js +0 -21
  143. package/commands/SetAlarmCommand.js +0 -21
  144. package/commands/SetCourtesyCommand.js +0 -21
  145. package/commands/SetDimmerCommand.js +0 -21
  146. package/commands/SetLockCommand.js +0 -21
  147. package/commands/SetSceneControllerCommand.js +0 -21
  148. package/commands/SetSwitchCommand.js +0 -21
  149. package/commands/SetThermostatCommand.js +0 -21
  150. package/commands/SetWindowCoveringCommand.js +0 -21
  151. package/commands/index.js +0 -31
  152. package/defs/deviceTypes.js +0 -15
  153. package/defs/formalDeviceTypes.js +0 -6
  154. package/defs/http.js +0 -7
  155. package/defs/index.js +0 -11
  156. package/errors/AppError.js +0 -8
  157. package/errors/AuthenticationError.js +0 -9
  158. package/errors/AuthorizationError.js +0 -9
  159. package/errors/DeviceCommError.js +0 -9
  160. package/errors/LoginError.js +0 -9
  161. package/errors/NotFoundError.js +0 -9
  162. package/errors/RequestError.js +0 -9
  163. package/errors/SystemCommError.js +0 -9
  164. package/errors/TokenExpiredError.js +0 -9
  165. package/errors/UnprocessableRequestError.js +0 -9
  166. package/errors/ValidationError.js +0 -9
  167. package/errors/index.js +0 -15
  168. package/events/EmailSentEvent.js +0 -17
  169. package/events/Event.js +0 -52
  170. package/events/SMSSentEvent.js +0 -17
  171. package/events/ShortLinkCreatedEvent.js +0 -17
  172. package/events/SystemCameraUpdatedEvent.js +0 -17
  173. package/events/SystemCourtesyUpdatedEvent.js +0 -17
  174. package/events/SystemDimmerUpdatedEvent.js +0 -17
  175. package/events/SystemLockUpdatedEvent.js +0 -17
  176. package/events/SystemReservationUpdatedEvent.js +0 -17
  177. package/events/SystemSceneControllerUpdatedEvent.js +0 -17
  178. package/events/SystemSourceUpdatedEvent.js +0 -17
  179. package/events/SystemSpaceUpdatedEvent.js +0 -17
  180. package/events/SystemSwitchUpdatedEvent.js +0 -17
  181. package/events/SystemThermostatUpdatedEvent.js +0 -17
  182. package/events/SystemUserUpdatedEvent.js +0 -17
  183. package/events/SystemWindowCoveringUpdatedEvent.js +0 -17
  184. package/events/index.js +0 -35
  185. package/http/handleResponseError.js +0 -33
  186. package/http/handleResponseSuccess.js +0 -15
  187. package/http/index.js +0 -169
  188. package/index.js +0 -23
  189. package/models/acl.js +0 -29
  190. package/models/admin/customer.js +0 -28
  191. package/models/admin/property.js +0 -28
  192. package/models/alarm.js +0 -29
  193. package/models/application.js +0 -28
  194. package/models/camera.js +0 -29
  195. package/models/courtesy.js +0 -33
  196. package/models/credential.js +0 -29
  197. package/models/dimmer.js +0 -49
  198. package/models/discoveredDevice.js +0 -30
  199. package/models/gateway.js +0 -29
  200. package/models/identification.js +0 -32
  201. package/models/index.js +0 -56
  202. package/models/integration.js +0 -76
  203. package/models/kohost.js +0 -96
  204. package/models/lock.js +0 -33
  205. package/models/mediaSource.js +0 -29
  206. package/models/motionSensor.js +0 -29
  207. package/models/product.js +0 -30
  208. package/models/reservation.js +0 -83
  209. package/models/room.js +0 -174
  210. package/models/scene.js +0 -28
  211. package/models/shortLink.js +0 -29
  212. package/models/space.js +0 -99
  213. package/models/switch.js +0 -33
  214. package/models/thermostat.js +0 -80
  215. package/models/ticket.js +0 -91
  216. package/models/user.js +0 -56
  217. package/models/windowCovering.js +0 -49
  218. package/prepare.js +0 -4
  219. package/schemas/acl.json +0 -111
  220. package/schemas/admin/customer.json +0 -32
  221. package/schemas/admin/property.json +0 -180
  222. package/schemas/alarm.json +0 -93
  223. package/schemas/application.json +0 -24
  224. package/schemas/camera.json +0 -41
  225. package/schemas/courtesy.json +0 -37
  226. package/schemas/credential.json +0 -28
  227. package/schemas/definitions/common.json +0 -74
  228. package/schemas/definitions/device.json +0 -76
  229. package/schemas/dimmer.json +0 -34
  230. package/schemas/discoveredDevice.json +0 -43
  231. package/schemas/gateway.json +0 -30
  232. package/schemas/identification.json +0 -49
  233. package/schemas/integration.json +0 -94
  234. package/schemas/lock.json +0 -36
  235. package/schemas/mediaSource.json +0 -151
  236. package/schemas/motionSensor.json +0 -26
  237. package/schemas/payment.json +0 -40
  238. package/schemas/product.json +0 -36
  239. package/schemas/reservation.json +0 -71
  240. package/schemas/room.json +0 -131
  241. package/schemas/scene.json +0 -118
  242. package/schemas/shortLink.json +0 -30
  243. package/schemas/space.json +0 -111
  244. package/schemas/switch.json +0 -33
  245. package/schemas/thermostat.json +0 -139
  246. package/schemas/ticket.json +0 -82
  247. package/schemas/user.json +0 -176
  248. package/schemas/windowCovering.json +0 -34
  249. package/tests/unit/models/space.test.js +0 -31
  250. package/tests/unit/models/thermostat.test.js +0 -146
  251. package/tests/unit/models/user.test.js +0 -28
  252. package/useCases/http.json +0 -1161
  253. package/utils/getDeviceTypes.js +0 -7
  254. package/utils/getFormalDeviceType.js +0 -5
  255. package/utils/schema.js +0 -28
@@ -1,93 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema",
3
- "$id": "https://api.kohost.app/schemas/v3/alarm.json",
4
- "title": "Alarm",
5
- "description": "Any smart alarm system",
6
- "type": "object",
7
- "properties": {
8
- "id": {
9
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/id"
10
- },
11
- "type": {
12
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/type"
13
- },
14
- "systemData": {
15
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/systemData"
16
- },
17
- "supportedNotifications": {
18
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/supportedNotifications"
19
- },
20
- "notification": {
21
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/notification"
22
- },
23
- "areas": {
24
- "type": "array",
25
- "items": {
26
- "type": "object",
27
- "properties": {
28
- "number": {
29
- "type": "number"
30
- },
31
- "name": {
32
- "type": "string"
33
- },
34
- "securityMode": {
35
- "type": "string",
36
- "enum": ["arming", "disarming", "armed", "disarmed", "alarm"]
37
- },
38
- "readyToArm": {
39
- "type": "boolean"
40
- }
41
- },
42
- "additionalProperties": false
43
- }
44
- },
45
- "zones": {
46
- "type": "array",
47
- "items": {
48
- "type": "object",
49
- "properties": {
50
- "number": {
51
- "type": "number",
52
- "minimum": 0
53
- },
54
- "name": {
55
- "type": "string"
56
- },
57
- "secure": {
58
- "type": "boolean"
59
- },
60
- "bypassed": {
61
- "type": "boolean"
62
- }
63
- },
64
- "additionalProperties": false
65
- }
66
- },
67
- "supportedTroubles": {
68
- "type": "array",
69
- "uniqueItems": true,
70
- "items": {
71
- "type": "string",
72
- "enum": ["battery", "ac", "phone", "bell", "fire"]
73
- }
74
- },
75
- "troubles": {
76
- "type": "array",
77
- "uniqueItems": true,
78
- "items": {
79
- "$ref": "#/properties/supportedTroubles/items"
80
- }
81
- }
82
- },
83
- "additionalProperties": false,
84
- "required": [
85
- "id",
86
- "type",
87
- "systemData",
88
- "areas",
89
- "zones",
90
- "supportedTroubles",
91
- "troubles"
92
- ]
93
- }
@@ -1,24 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema",
3
- "$id": "https://api.kohost.app/schemas/v3/application.json",
4
- "title": "Application",
5
- "type": "object",
6
- "required": ["id", "active", "name", "publicKey", "hashedPrivateKey"],
7
- "properties": {
8
- "id": {
9
- "$ref": "https://api.kohost.app/schemas/v3/definitions/common.json#/definitions/id"
10
- },
11
- "active": {
12
- "type": "boolean"
13
- },
14
- "name": {
15
- "type": "string"
16
- },
17
- "publicKey": {
18
- "type": "string"
19
- },
20
- "hashedPrivateKey": {
21
- "type": "string"
22
- }
23
- }
24
- }
@@ -1,41 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema",
3
- "$id": "https://api.kohost.app/schemas/v3/camera.json",
4
- "title": "Camera",
5
- "description": "Any smart camera",
6
- "type": "object",
7
- "properties": {
8
- "id": {
9
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/id"
10
- },
11
- "type": {
12
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/type"
13
- },
14
- "supportedNotifications": {
15
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/supportedNotifications"
16
- },
17
- "notification": {
18
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/notification"
19
- },
20
- "streams": {
21
- "type": "object",
22
- "additionalProperties": false,
23
- "properties": {
24
- "origin": {
25
- "type": ["string", "null"]
26
- },
27
- "local": {
28
- "type": ["string", "null"]
29
- },
30
- "remote": {
31
- "type": ["string", "null"]
32
- }
33
- }
34
- },
35
- "systemData": {
36
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/systemData"
37
- }
38
- },
39
- "additionalProperties": false,
40
- "required": ["id", "type", "systemData", "streams"]
41
- }
@@ -1,37 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema",
3
- "$id": "https://api.kohost.app/schemas/v3/courtesy.json",
4
- "title": "Courtesy",
5
- "description": "Any smart courtesy system",
6
- "type": "object",
7
- "properties": {
8
- "id": {
9
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/id"
10
- },
11
- "type": {
12
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/type"
13
- },
14
- "supportedNotifications": {
15
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/supportedNotifications"
16
- },
17
- "notification": {
18
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/notification"
19
- },
20
- "supportedStates": {
21
- "type": "array",
22
- "uniqueItems": true,
23
- "items": {
24
- "enum": ["privacy", "service", "none"]
25
- }
26
- },
27
- "state": {
28
- "type": "string",
29
- "$ref": "#/properties/supportedStates/items"
30
- },
31
- "systemData": {
32
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/systemData"
33
- }
34
- },
35
- "additionalProperties": false,
36
- "required": ["supportedStates", "state"]
37
- }
@@ -1,28 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema",
3
- "$id": "https://api.kohost.app/schemas/v3/credential.json",
4
- "title": "Credential",
5
- "type": "object",
6
- "required": ["type", "credential", "expires"],
7
- "properties": {
8
- "id": {
9
- "$ref": "https://api.kohost.app/schemas/v3/definitions/common.json#/definitions/id"
10
- },
11
- "type": {
12
- "type": "string",
13
- "enum": ["verificationCode", "token"]
14
- },
15
- "credential": {
16
- "type": "string"
17
- },
18
- "user": {
19
- "type": "string"
20
- },
21
- "userAgent": {
22
- "type": "string"
23
- },
24
- "expires": {
25
- "string": "string"
26
- }
27
- }
28
- }
@@ -1,74 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema",
3
- "$id": "https://api.kohost.app/schemas/v3/definitions/common.json",
4
- "definitions": {
5
- "id": {
6
- "type": "string"
7
- },
8
- "systemData": {
9
- "type": "object",
10
- "default": {}
11
- },
12
- "metadata": {
13
- "type": "object",
14
- "default": {}
15
- },
16
- "createdAt": {
17
- "type": ["string", "object"],
18
- "format": "date-time"
19
- },
20
- "updatedAt": {
21
- "type": ["string", "object"],
22
- "format": "date-time"
23
- },
24
- "file": {
25
- "type":"object",
26
- "required": ["name", "type", "data"],
27
- "properties": {
28
- "name": {
29
- "type":"string",
30
- "description": "Name of the file."
31
- },
32
- "type": {
33
- "type":"string",
34
- "description": "MIME type of the file (e.g. application/pdf)."
35
- },
36
- "data": {
37
- "type":"string",
38
- "description": "Base64-encoded data of the file."
39
- }
40
- }
41
- },
42
- "address": {
43
- "type":"object",
44
- "properties": {
45
- "id": {
46
- "type":"string"
47
- },
48
- "line1": {
49
- "type":"string"
50
- },
51
- "line2": {
52
- "type":"string"
53
- },
54
- "line3": {
55
- "type":"string"
56
- },
57
- "city": {
58
- "type":"string"
59
- },
60
- "state": {
61
- "type":"string"
62
- },
63
- "postalCode": {
64
- "type":"string"
65
- },
66
- "countryCode": {
67
- "type":"string",
68
- "minLength": 2,
69
- "maxLength": 2
70
- }
71
- }
72
- }
73
- }
74
- }
@@ -1,76 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema",
3
- "$id": "https://api.kohost.app/schemas/v3/definitions/device.json",
4
- "definitions": {
5
- "id": {
6
- "$ref": "https://api.kohost.app/schemas/v3/definitions/common.json#/definitions/id"
7
- },
8
- "systemData": {
9
- "$ref": "https://api.kohost.app/schemas/v3/definitions/common.json#/definitions/systemData"
10
- },
11
- "type": {
12
- "type": "string",
13
- "enum": [
14
- "dimmer",
15
- "switch",
16
- "motionSensor",
17
- "windowCovering",
18
- "camera",
19
- "mediaSource",
20
- "thermostat",
21
- "lock",
22
- "courtesy",
23
- "sceneController",
24
- "gateway"
25
- ]
26
- },
27
- "name": {
28
- "type": "string"
29
- },
30
- "subType": {
31
- "type": ["string", "null"]
32
- },
33
- "supportedNotifications": {
34
- "type": "array",
35
- "uniqueItems": true,
36
- "items": {
37
- "enum": [
38
- "button 1",
39
- "button 2",
40
- "button 3",
41
- "button 4",
42
- "button 5",
43
- "idle",
44
- "powerHasBeedApplied",
45
- "acMainsDisconnected",
46
- "acMainsReconnected",
47
- "replaceBatterySoon",
48
- "replaceBatteryNow",
49
- "hardwareFailure",
50
- "softwareFailure",
51
- "hardwareFailureWithCode",
52
- "softwareFailureWithCode",
53
- "motionDetection"
54
- ]
55
- }
56
- },
57
- "notification": {
58
- "type": ["object", "null"],
59
- "properties": {
60
- "name": {
61
- "type": "string",
62
- "$ref": "#/definitions/supportedNotifications/items"
63
- },
64
- "timestamp": {
65
- "type": "number",
66
- "minimum": 1655907956593
67
- }
68
- }
69
- },
70
- "batteryLevel": {
71
- "type":"number",
72
- "minimum": 0,
73
- "maximum": 100
74
- }
75
- }
76
- }
@@ -1,34 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema",
3
- "$id": "https://api.kohost.app/schemas/v3/dimmer.json",
4
- "title": "Dimmer",
5
- "description": "Any smart dimmer",
6
- "type": "object",
7
- "properties": {
8
- "id": {
9
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/id"
10
- },
11
- "type": {
12
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/type"
13
- },
14
- "subType": {
15
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/subType"
16
- },
17
- "supportedNotifications": {
18
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/supportedNotifications"
19
- },
20
- "notification": {
21
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/notification"
22
- },
23
- "level": {
24
- "type": "number",
25
- "minimum": 0,
26
- "maximum": 100
27
- },
28
- "systemData": {
29
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/systemData"
30
- }
31
- },
32
- "additionalProperties": false,
33
- "required": ["id", "type", "systemData", "level"]
34
- }
@@ -1,43 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema",
3
- "$id": "https://api.kohost.app/schemas/v3/discoveredDevice.json",
4
- "title": "Discovered Device",
5
- "description": "A device that has been discovered by Kohost, but not yet added to the Kohost system.",
6
- "type": "object",
7
- "required": ["name", "deviceId", "driver", "deviceData"],
8
- "properties": {
9
- "id": {
10
- "$ref": "https://api.kohost.app/schemas/v3/definitions/common.json#/definitions/id"
11
- },
12
- "name": {
13
- "type": "string"
14
- },
15
- "deviceId": {
16
- "type": "string"
17
- },
18
- "type": {
19
- "type": "string",
20
- "enum": [
21
- "dimmer",
22
- "switch",
23
- "motionSensor",
24
- "thermostat",
25
- "lock",
26
- "camera",
27
- "courtesy",
28
- "source",
29
- "alarm",
30
- "windowCovering"
31
- ]
32
- },
33
- "driver": {
34
- "type": "string"
35
- },
36
- "integrationId": {
37
- "type": "string"
38
- },
39
- "deviceData": {
40
- "type": "object"
41
- }
42
- }
43
- }
@@ -1,30 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema",
3
- "$id": "https://api.kohost.app/schemas/v3/iotGateway.json",
4
- "title": "IoT Gateway",
5
- "description": "Any smart gateway that is an entrypoint for controlling devices",
6
- "type": "object",
7
- "properties": {
8
- "id": {
9
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/id"
10
- },
11
- "type": {
12
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/type"
13
- },
14
-
15
- "supportedNotifications": {
16
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/supportedNotifications"
17
- },
18
- "notification": {
19
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/notification"
20
- },
21
- "status": {
22
- "type": "string"
23
- },
24
- "systemData": {
25
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/systemData"
26
- }
27
- },
28
- "additionalProperties": false,
29
- "required": ["id", "type", "systemData", "status"]
30
- }
@@ -1,49 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema",
3
- "$id": "https://api.kohost.app/schemas/v3/identification.json",
4
- "title": "Identification",
5
- "type": "object",
6
- "required": ["type", "number", "expires"],
7
- "properties": {
8
- "id": {
9
- "$ref": "https://api.kohost.app/schemas/v3/definitions/common.json#/definitions/id"
10
- },
11
- "type": {
12
- "type": "string",
13
- "enum": ["driversLicense", "passport", "identityCard", "visa"]
14
- },
15
- "number": {
16
- "string": "string"
17
- },
18
- "issued": {
19
- "type": ["string", "object"],
20
- "format": "date-time"
21
- },
22
- "expires": {
23
- "type": ["string", "object"],
24
- "format": "date-time"
25
- },
26
- "verified": {
27
- "type": "boolean",
28
- "default": false
29
- },
30
- "matched": {
31
- "type": "boolean",
32
- "default": false
33
- },
34
- "firstName": {
35
- "type": "string"
36
- },
37
- "lastName": {
38
- "type": "string"
39
- },
40
- "issuingCountry": {
41
- "string": "string",
42
- "minLength": 2,
43
- "maxLength": 2
44
- },
45
- "systemData": {
46
- "$ref": "https://api.kohost.app/schemas/v3/definitions/common.json#/definitions/systemData"
47
- }
48
- }
49
- }
@@ -1,94 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema",
3
- "$id": "https://api.kohost.app/schemas/v3/integration.json",
4
- "title": "Integration",
5
- "description": "Integration configuration",
6
- "type": "object",
7
- "properties": {
8
- "id": {
9
- "$ref": "https://api.kohost.app/schemas/v3/definitions/common.json#/definitions/id"
10
- },
11
- "driver": {
12
- "type": "string",
13
- "description": "Driver to use for this integration",
14
- "enum": [
15
- "aws-kinesis",
16
- "crestron",
17
- "igor",
18
- "lirc",
19
- "pelican-wireless",
20
- "salto",
21
- "se",
22
- "mews",
23
- "operaCloud",
24
- "stay-n-touch"
25
- ]
26
- },
27
- "driverVersion": {
28
- "type": "string",
29
- "description": "Version of the driver to use for this integration",
30
- "default": "latest"
31
- },
32
- "config": {
33
- "type": "object",
34
- "default": {}
35
- },
36
- "data": {
37
- "type": "object",
38
- "default": {},
39
- "description": "Data to be used by the driver",
40
- "additionalProperties": true,
41
- "properties": {
42
- "deviceMap": {
43
- "type": "object",
44
- "description": "Map of kohost device IDs to device names",
45
- "additionalProperties": false,
46
- "patternProperties": {
47
- "^[a-zA-Z0-9]{8}$": {
48
- "type": "object",
49
- "additionalProperties": false,
50
- "required": ["id", "type", "roomId"],
51
- "properties": {
52
- "id": {
53
- "type": "string",
54
- "description": "Driver device id"
55
- },
56
- "type": {
57
- "type": "string",
58
- "description": "Driver device type"
59
- },
60
- "roomId": {
61
- "type": "string",
62
- "description": "Kohost room id"
63
- }
64
- }
65
- }
66
- }
67
- }
68
- }
69
- },
70
- "health": {
71
- "type": "object",
72
- "properties": {
73
- "upSince": {
74
- "type": "string",
75
- "format": "date-time"
76
- },
77
- "lastSeen": {
78
- "type": "string",
79
- "format": "date-time"
80
- }
81
- },
82
- "default": {},
83
- "additionalProperties": false
84
- },
85
- "createdAt": {
86
- "$ref": "https://api.kohost.app/schemas/v3/definitions/common.json#/definitions/createdAt"
87
- },
88
- "updatedAt": {
89
- "$ref": "https://api.kohost.app/schemas/v3/definitions/common.json#/definitions/updatedAt"
90
- }
91
- },
92
- "additionalProperties": false,
93
- "required": ["id", "driver", "driverVersion", "config", "health", "data"]
94
- }
package/schemas/lock.json DELETED
@@ -1,36 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema",
3
- "$id": "https://api.kohost.app/schemas/v3/lock.json",
4
- "title": "Lock",
5
- "description": "Any smart lock",
6
- "type": "object",
7
- "properties": {
8
- "id": {
9
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/id"
10
- },
11
- "name": {
12
- "type": "string"
13
- },
14
- "type": {
15
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/type"
16
- },
17
- "subType": {
18
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/subType"
19
- },
20
- "supportedNotifications": {
21
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/supportedNotifications"
22
- },
23
- "notification": {
24
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/notification"
25
- },
26
- "state": {
27
- "type": "string",
28
- "enum": ["locked", "unlocked"]
29
- },
30
- "systemData": {
31
- "$ref": "https://api.kohost.app/schemas/v3/definitions/device.json#/definitions/systemData"
32
- }
33
- },
34
- "additionalProperties": false,
35
- "required": ["id", "type", "systemData", "state"]
36
- }