You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

2249 line
66 KiB

  1. {
  2. "openapi": "3.0.0",
  3. "info": {
  4. "title": "RES LEVIS API",
  5. "description": "API for RES LEVIS project",
  6. "contact": {
  7. "email": "info@reslevis.com"
  8. },
  9. "license": {
  10. "name": "Apache 2.0",
  11. "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
  12. },
  13. "version": "1.0.5"
  14. },
  15. "tags": [
  16. {
  17. "name": "Admins",
  18. "description": "Secured Admin-only calls"
  19. },
  20. {
  21. "name": "Developers",
  22. "description": "Operations available to regular developers"
  23. }
  24. ],
  25. "paths": {
  26. "/getBuildings": {
  27. "get": {
  28. "tags": [
  29. "Developers"
  30. ],
  31. "summary": "Get the buildings",
  32. "description": "Get the buildings\n",
  33. "operationId": "getBuildings",
  34. "parameters": [
  35. {
  36. "name": "id",
  37. "in": "query",
  38. "description": "id of the item to get",
  39. "required": false,
  40. "schema": {
  41. "type": "string"
  42. }
  43. },
  44. {
  45. "name": "searchString",
  46. "in": "query",
  47. "description": "pass an optional search string for looking up inventory",
  48. "required": false,
  49. "schema": {
  50. "type": "string"
  51. }
  52. },
  53. {
  54. "name": "skip",
  55. "in": "query",
  56. "description": "number of records to skip for pagination",
  57. "required": false,
  58. "schema": {
  59. "minimum": 0,
  60. "type": "integer",
  61. "format": "int32"
  62. }
  63. },
  64. {
  65. "name": "limit",
  66. "in": "query",
  67. "description": "maximum number of records to return",
  68. "required": false,
  69. "schema": {
  70. "maximum": 1000,
  71. "minimum": 0,
  72. "type": "integer",
  73. "format": "int32"
  74. }
  75. }
  76. ],
  77. "responses": {
  78. "200": {
  79. "description": "search results matching criteria",
  80. "content": {
  81. "application/json": {
  82. "schema": {
  83. "type": "array",
  84. "items": {
  85. "$ref": "#/components/schemas/BuildingItem"
  86. }
  87. }
  88. }
  89. }
  90. },
  91. "400": {
  92. "description": "bad input parameter"
  93. }
  94. }
  95. },
  96. "servers": [
  97. {
  98. "url": "",
  99. "description": ""
  100. }
  101. ]
  102. },
  103. "/postBuilding": {
  104. "post": {
  105. "tags": [
  106. "Developers"
  107. ],
  108. "summary": "Post a building item",
  109. "description": "Post a building",
  110. "operationId": "postBuilding",
  111. "requestBody": {
  112. "description": "building item",
  113. "content": {
  114. "application/json": {
  115. "schema": {
  116. "$ref": "#/components/schemas/BuildingItem"
  117. }
  118. }
  119. }
  120. },
  121. "responses": {
  122. "201": {
  123. "description": "item created"
  124. },
  125. "400": {
  126. "description": "invalid input, object invalid"
  127. },
  128. "409": {
  129. "description": "an existing item already exists"
  130. }
  131. }
  132. },
  133. "servers": [
  134. {
  135. "url": "",
  136. "description": ""
  137. }
  138. ]
  139. },
  140. "/removeBuilding": {
  141. "delete": {
  142. "tags": [
  143. "Developers"
  144. ],
  145. "summary": "Remove a building item",
  146. "description": "Remove a building",
  147. "operationId": "removeBuilding",
  148. "requestBody": {
  149. "description": "floor item",
  150. "content": {
  151. "application/json": {
  152. "schema": {
  153. "$ref": "#/components/schemas/removeItem"
  154. }
  155. }
  156. }
  157. },
  158. "responses": {
  159. "201": {
  160. "description": "item removed"
  161. },
  162. "400": {
  163. "description": "invalid input, object invalid"
  164. },
  165. "409": {
  166. "description": "the item can't be removed"
  167. }
  168. }
  169. },
  170. "servers": [
  171. {
  172. "url": "",
  173. "description": ""
  174. }
  175. ]
  176. },
  177. "/getFloors": {
  178. "get": {
  179. "tags": [
  180. "Developers"
  181. ],
  182. "summary": "Get the floors",
  183. "description": "Get the floors\n",
  184. "operationId": "getFloors",
  185. "parameters": [
  186. {
  187. "name": "id",
  188. "in": "query",
  189. "description": "id of the item to get",
  190. "required": false,
  191. "schema": {
  192. "type": "string"
  193. }
  194. },
  195. {
  196. "name": "searchString",
  197. "in": "query",
  198. "description": "pass an optional search string for looking up inventory",
  199. "required": false,
  200. "schema": {
  201. "type": "string"
  202. }
  203. },
  204. {
  205. "name": "skip",
  206. "in": "query",
  207. "description": "number of records to skip for pagination",
  208. "required": false,
  209. "schema": {
  210. "minimum": 0,
  211. "type": "integer",
  212. "format": "int32"
  213. }
  214. },
  215. {
  216. "name": "limit",
  217. "in": "query",
  218. "description": "maximum number of records to return",
  219. "required": false,
  220. "schema": {
  221. "maximum": 1000,
  222. "minimum": 0,
  223. "type": "integer",
  224. "format": "int32"
  225. }
  226. }
  227. ],
  228. "responses": {
  229. "200": {
  230. "description": "search results matching criteria",
  231. "content": {
  232. "application/json": {
  233. "schema": {
  234. "type": "array",
  235. "items": {
  236. "$ref": "#/components/schemas/FloorItem"
  237. }
  238. }
  239. }
  240. }
  241. },
  242. "400": {
  243. "description": "bad input parameter"
  244. }
  245. }
  246. },
  247. "servers": [
  248. {
  249. "url": "",
  250. "description": ""
  251. }
  252. ]
  253. },
  254. "/postFloor": {
  255. "post": {
  256. "tags": [
  257. "Developers"
  258. ],
  259. "summary": "Post a floor item",
  260. "description": "Post a floor",
  261. "operationId": "postFloor",
  262. "requestBody": {
  263. "description": "floor item",
  264. "content": {
  265. "application/json": {
  266. "schema": {
  267. "$ref": "#/components/schemas/FloorItem"
  268. }
  269. }
  270. }
  271. },
  272. "responses": {
  273. "201": {
  274. "description": "item created"
  275. },
  276. "400": {
  277. "description": "invalid input, object invalid"
  278. },
  279. "409": {
  280. "description": "an existing item already exists"
  281. }
  282. }
  283. },
  284. "servers": [
  285. {
  286. "url": "",
  287. "description": ""
  288. }
  289. ]
  290. },
  291. "/removeFloor": {
  292. "delete": {
  293. "tags": [
  294. "Developers"
  295. ],
  296. "summary": "Remove a floor item",
  297. "description": "Remove a floor",
  298. "operationId": "removeFloor",
  299. "requestBody": {
  300. "description": "floor item",
  301. "content": {
  302. "application/json": {
  303. "schema": {
  304. "$ref": "#/components/schemas/removeItem"
  305. }
  306. }
  307. }
  308. },
  309. "responses": {
  310. "201": {
  311. "description": "item removed"
  312. },
  313. "400": {
  314. "description": "invalid input, object invalid"
  315. },
  316. "409": {
  317. "description": "the item can't be removed"
  318. }
  319. }
  320. },
  321. "servers": [
  322. {
  323. "url": "",
  324. "description": ""
  325. }
  326. ]
  327. },
  328. "/getZones": {
  329. "get": {
  330. "tags": [
  331. "Developers"
  332. ],
  333. "summary": "Get the zones",
  334. "description": "Get the zones\n",
  335. "operationId": "getZones",
  336. "parameters": [
  337. {
  338. "name": "id",
  339. "in": "query",
  340. "description": "id of the item to get",
  341. "required": false,
  342. "schema": {
  343. "type": "string"
  344. }
  345. },
  346. {
  347. "name": "searchString",
  348. "in": "query",
  349. "description": "pass an optional search string for looking up inventory",
  350. "required": false,
  351. "schema": {
  352. "type": "string"
  353. }
  354. },
  355. {
  356. "name": "skip",
  357. "in": "query",
  358. "description": "number of records to skip for pagination",
  359. "required": false,
  360. "schema": {
  361. "minimum": 0,
  362. "type": "integer",
  363. "format": "int32"
  364. }
  365. },
  366. {
  367. "name": "limit",
  368. "in": "query",
  369. "description": "maximum number of records to return",
  370. "required": false,
  371. "schema": {
  372. "maximum": 1000,
  373. "minimum": 0,
  374. "type": "integer",
  375. "format": "int32"
  376. }
  377. }
  378. ],
  379. "responses": {
  380. "200": {
  381. "description": "search results matching criteria",
  382. "content": {
  383. "application/json": {
  384. "schema": {
  385. "type": "array",
  386. "items": {
  387. "$ref": "#/components/schemas/ZoneItem"
  388. }
  389. }
  390. }
  391. }
  392. },
  393. "400": {
  394. "description": "bad input parameter"
  395. }
  396. }
  397. },
  398. "servers": [
  399. {
  400. "url": "",
  401. "description": ""
  402. }
  403. ]
  404. },
  405. "/postZone": {
  406. "post": {
  407. "tags": [
  408. "Developers"
  409. ],
  410. "summary": "Post a zone item",
  411. "description": "Post a zone item",
  412. "operationId": "postZone",
  413. "requestBody": {
  414. "description": "zone item",
  415. "content": {
  416. "application/json": {
  417. "schema": {
  418. "$ref": "#/components/schemas/ZoneItem"
  419. }
  420. }
  421. }
  422. },
  423. "responses": {
  424. "201": {
  425. "description": "item created"
  426. },
  427. "400": {
  428. "description": "invalid input, object invalid"
  429. },
  430. "409": {
  431. "description": "an existing item already exists"
  432. }
  433. }
  434. },
  435. "servers": [
  436. {
  437. "url": "",
  438. "description": ""
  439. }
  440. ]
  441. },
  442. "/removeZone": {
  443. "delete": {
  444. "tags": [
  445. "Developers"
  446. ],
  447. "summary": "Remove a zone item",
  448. "description": "Remove a zone",
  449. "operationId": "removeZone",
  450. "requestBody": {
  451. "description": "zone item to be removed",
  452. "content": {
  453. "application/json": {
  454. "schema": {
  455. "$ref": "#/components/schemas/removeItem"
  456. }
  457. }
  458. }
  459. },
  460. "responses": {
  461. "201": {
  462. "description": "item removed"
  463. },
  464. "400": {
  465. "description": "invalid input, object invalid"
  466. },
  467. "409": {
  468. "description": "the item can't be removed"
  469. }
  470. }
  471. },
  472. "servers": [
  473. {
  474. "url": "",
  475. "description": ""
  476. }
  477. ]
  478. },
  479. "/getGateways": {
  480. "get": {
  481. "tags": [
  482. "Developers"
  483. ],
  484. "summary": "Get the gateways",
  485. "description": "Get the gateways\n",
  486. "operationId": "getGateways",
  487. "parameters": [
  488. {
  489. "name": "id",
  490. "in": "query",
  491. "description": "id of the item to get",
  492. "required": false,
  493. "schema": {
  494. "type": "string"
  495. }
  496. },
  497. {
  498. "name": "searchString",
  499. "in": "query",
  500. "description": "pass an optional search string for looking up inventory",
  501. "required": false,
  502. "schema": {
  503. "type": "string"
  504. }
  505. },
  506. {
  507. "name": "skip",
  508. "in": "query",
  509. "description": "number of records to skip for pagination",
  510. "required": false,
  511. "schema": {
  512. "minimum": 0,
  513. "type": "integer",
  514. "format": "int32"
  515. }
  516. },
  517. {
  518. "name": "limit",
  519. "in": "query",
  520. "description": "maximum number of records to return",
  521. "required": false,
  522. "schema": {
  523. "maximum": 1000,
  524. "minimum": 0,
  525. "type": "integer",
  526. "format": "int32"
  527. }
  528. }
  529. ],
  530. "responses": {
  531. "200": {
  532. "description": "search results matching criteria",
  533. "content": {
  534. "application/json": {
  535. "schema": {
  536. "type": "array",
  537. "items": {
  538. "$ref": "#/components/schemas/GatewayItem"
  539. }
  540. }
  541. }
  542. }
  543. },
  544. "400": {
  545. "description": "bad input parameter"
  546. }
  547. }
  548. },
  549. "servers": [
  550. {
  551. "url": "",
  552. "description": ""
  553. }
  554. ]
  555. },
  556. "/postGateway": {
  557. "post": {
  558. "tags": [
  559. "Developers"
  560. ],
  561. "summary": "Post a gateway item",
  562. "description": "Post a gateway item",
  563. "operationId": "postGateway",
  564. "requestBody": {
  565. "description": "gateway item",
  566. "content": {
  567. "application/json": {
  568. "schema": {
  569. "$ref": "#/components/schemas/GatewayItem"
  570. }
  571. }
  572. }
  573. },
  574. "responses": {
  575. "201": {
  576. "description": "item created"
  577. },
  578. "400": {
  579. "description": "invalid input, object invalid"
  580. },
  581. "409": {
  582. "description": "an existing item already exists"
  583. }
  584. }
  585. },
  586. "servers": [
  587. {
  588. "url": "",
  589. "description": ""
  590. }
  591. ]
  592. },
  593. "/removeGateway": {
  594. "delete": {
  595. "tags": [
  596. "Developers"
  597. ],
  598. "summary": "Remove a gateway item",
  599. "description": "Remove a gateway",
  600. "operationId": "removeGateway",
  601. "requestBody": {
  602. "description": "gateway item to be removed",
  603. "content": {
  604. "application/json": {
  605. "schema": {
  606. "$ref": "#/components/schemas/removeItem"
  607. }
  608. }
  609. }
  610. },
  611. "responses": {
  612. "201": {
  613. "description": "item removed"
  614. },
  615. "400": {
  616. "description": "invalid input, object invalid"
  617. },
  618. "409": {
  619. "description": "the item can't be removed"
  620. }
  621. }
  622. },
  623. "servers": [
  624. {
  625. "url": "",
  626. "description": ""
  627. }
  628. ]
  629. },
  630. "/getTrackers": {
  631. "get": {
  632. "tags": [
  633. "Developers"
  634. ],
  635. "summary": "Get the trackers",
  636. "description": "Get the trackers\n",
  637. "operationId": "getTrackers",
  638. "parameters": [
  639. {
  640. "name": "id",
  641. "in": "query",
  642. "description": "id of the item to get",
  643. "required": false,
  644. "schema": {
  645. "type": "string"
  646. }
  647. },
  648. {
  649. "name": "searchString",
  650. "in": "query",
  651. "description": "pass an optional search string for looking up inventory",
  652. "required": false,
  653. "schema": {
  654. "type": "string"
  655. }
  656. },
  657. {
  658. "name": "skip",
  659. "in": "query",
  660. "description": "number of records to skip for pagination",
  661. "required": false,
  662. "schema": {
  663. "minimum": 0,
  664. "type": "integer",
  665. "format": "int32"
  666. }
  667. },
  668. {
  669. "name": "limit",
  670. "in": "query",
  671. "description": "maximum number of records to return",
  672. "required": false,
  673. "schema": {
  674. "maximum": 1000,
  675. "minimum": 0,
  676. "type": "integer",
  677. "format": "int32"
  678. }
  679. }
  680. ],
  681. "responses": {
  682. "200": {
  683. "description": "search results matching criteria",
  684. "content": {
  685. "application/json": {
  686. "schema": {
  687. "type": "array",
  688. "items": {
  689. "$ref": "#/components/schemas/TrackerItem"
  690. }
  691. }
  692. }
  693. }
  694. },
  695. "400": {
  696. "description": "bad input parameter"
  697. }
  698. }
  699. },
  700. "servers": [
  701. {
  702. "url": "",
  703. "description": ""
  704. }
  705. ]
  706. },
  707. "/postTracker": {
  708. "post": {
  709. "tags": [
  710. "Developers"
  711. ],
  712. "summary": "Post a tracker item",
  713. "description": "Post a tracker item",
  714. "operationId": "postTracker",
  715. "requestBody": {
  716. "description": "tracker item",
  717. "content": {
  718. "application/json": {
  719. "schema": {
  720. "$ref": "#/components/schemas/TrackerItem"
  721. }
  722. }
  723. }
  724. },
  725. "responses": {
  726. "201": {
  727. "description": "item created"
  728. },
  729. "400": {
  730. "description": "invalid input, object invalid"
  731. },
  732. "409": {
  733. "description": "an existing item already exists"
  734. }
  735. }
  736. },
  737. "servers": [
  738. {
  739. "url": "",
  740. "description": ""
  741. }
  742. ]
  743. },
  744. "/removeTracker": {
  745. "delete": {
  746. "tags": [
  747. "Developers"
  748. ],
  749. "summary": "Remove a tracker item",
  750. "description": "Remove a tracker",
  751. "operationId": "removeTracker",
  752. "requestBody": {
  753. "description": "tracker item to be removed",
  754. "content": {
  755. "application/json": {
  756. "schema": {
  757. "$ref": "#/components/schemas/removeItem"
  758. }
  759. }
  760. }
  761. },
  762. "responses": {
  763. "201": {
  764. "description": "item removed"
  765. },
  766. "400": {
  767. "description": "invalid input, object invalid"
  768. },
  769. "409": {
  770. "description": "the item can't be removed"
  771. }
  772. }
  773. },
  774. "servers": [
  775. {
  776. "url": "",
  777. "description": ""
  778. }
  779. ]
  780. },
  781. "/getTrackerZones": {
  782. "get": {
  783. "tags": [
  784. "Developers"
  785. ],
  786. "summary": "Get the tracker zones",
  787. "description": "Get the tracker zones\n",
  788. "operationId": "getTrackerZones",
  789. "parameters": [
  790. {
  791. "name": "id",
  792. "in": "query",
  793. "description": "id of the item to get",
  794. "required": false,
  795. "schema": {
  796. "type": "string"
  797. }
  798. },
  799. {
  800. "name": "searchString",
  801. "in": "query",
  802. "description": "pass an optional search string for looking up inventory",
  803. "required": false,
  804. "schema": {
  805. "type": "string"
  806. }
  807. },
  808. {
  809. "name": "skip",
  810. "in": "query",
  811. "description": "number of records to skip for pagination",
  812. "required": false,
  813. "schema": {
  814. "minimum": 0,
  815. "type": "integer",
  816. "format": "int32"
  817. }
  818. },
  819. {
  820. "name": "limit",
  821. "in": "query",
  822. "description": "maximum number of records to return",
  823. "required": false,
  824. "schema": {
  825. "maximum": 1000,
  826. "minimum": 0,
  827. "type": "integer",
  828. "format": "int32"
  829. }
  830. }
  831. ],
  832. "responses": {
  833. "200": {
  834. "description": "search results matching criteria",
  835. "content": {
  836. "application/json": {
  837. "schema": {
  838. "type": "array",
  839. "items": {
  840. "$ref": "#/components/schemas/trackerZonesItem"
  841. }
  842. }
  843. }
  844. }
  845. },
  846. "400": {
  847. "description": "bad input parameter"
  848. }
  849. }
  850. },
  851. "servers": [
  852. {
  853. "url": "",
  854. "description": ""
  855. }
  856. ]
  857. },
  858. "/postTrackerZone": {
  859. "post": {
  860. "tags": [
  861. "Developers"
  862. ],
  863. "summary": "Post a tracker zone item",
  864. "description": "Post a tracker zone item",
  865. "operationId": "postTrackerZone",
  866. "requestBody": {
  867. "description": "tracker zone item",
  868. "content": {
  869. "application/json": {
  870. "schema": {
  871. "$ref": "#/components/schemas/trackerZoneItem"
  872. }
  873. }
  874. }
  875. },
  876. "responses": {
  877. "201": {
  878. "description": "item created"
  879. },
  880. "400": {
  881. "description": "invalid input, object invalid"
  882. },
  883. "409": {
  884. "description": "an existing item already exists"
  885. }
  886. }
  887. },
  888. "servers": [
  889. {
  890. "url": "",
  891. "description": ""
  892. }
  893. ]
  894. },
  895. "/removeTrackerZone": {
  896. "delete": {
  897. "tags": [
  898. "Developers"
  899. ],
  900. "summary": "Remove a tracker zone item",
  901. "description": "Remove a tracker zone item",
  902. "operationId": "removeTrackerZone",
  903. "requestBody": {
  904. "description": "tracker zone item to be removed",
  905. "content": {
  906. "application/json": {
  907. "schema": {
  908. "$ref": "#/components/schemas/trackerZoneItem"
  909. }
  910. }
  911. }
  912. },
  913. "responses": {
  914. "201": {
  915. "description": "item removed"
  916. },
  917. "400": {
  918. "description": "invalid input, object invalid"
  919. },
  920. "409": {
  921. "description": "the item can't be removed"
  922. }
  923. }
  924. },
  925. "servers": [
  926. {
  927. "url": "",
  928. "description": ""
  929. }
  930. ]
  931. },
  932. "/getOperators": {
  933. "get": {
  934. "tags": [
  935. "Developers"
  936. ],
  937. "summary": "Get the operators",
  938. "description": "Get the operators\n",
  939. "operationId": "getOperators",
  940. "parameters": [
  941. {
  942. "name": "id",
  943. "in": "query",
  944. "description": "id of the item to get",
  945. "required": false,
  946. "schema": {
  947. "type": "string"
  948. }
  949. },
  950. {
  951. "name": "searchString",
  952. "in": "query",
  953. "description": "pass an optional search string for looking up inventory",
  954. "required": false,
  955. "schema": {
  956. "type": "string"
  957. }
  958. },
  959. {
  960. "name": "skip",
  961. "in": "query",
  962. "description": "number of records to skip for pagination",
  963. "required": false,
  964. "schema": {
  965. "minimum": 0,
  966. "type": "integer",
  967. "format": "int32"
  968. }
  969. },
  970. {
  971. "name": "limit",
  972. "in": "query",
  973. "description": "maximum number of records to return",
  974. "required": false,
  975. "schema": {
  976. "maximum": 1000,
  977. "minimum": 0,
  978. "type": "integer",
  979. "format": "int32"
  980. }
  981. }
  982. ],
  983. "responses": {
  984. "200": {
  985. "description": "search results matching criteria",
  986. "content": {
  987. "application/json": {
  988. "schema": {
  989. "type": "array",
  990. "items": {
  991. "$ref": "#/components/schemas/OperatorItem"
  992. }
  993. }
  994. }
  995. }
  996. },
  997. "400": {
  998. "description": "bad input parameter"
  999. }
  1000. }
  1001. },
  1002. "servers": [
  1003. {
  1004. "url": "",
  1005. "description": ""
  1006. }
  1007. ]
  1008. },
  1009. "/postOperator": {
  1010. "post": {
  1011. "tags": [
  1012. "Developers"
  1013. ],
  1014. "summary": "Post an operator item",
  1015. "description": "Post an operator item",
  1016. "operationId": "postOperator",
  1017. "requestBody": {
  1018. "description": "operator item",
  1019. "content": {
  1020. "application/json": {
  1021. "schema": {
  1022. "$ref": "#/components/schemas/OperatorItem"
  1023. }
  1024. }
  1025. }
  1026. },
  1027. "responses": {
  1028. "201": {
  1029. "description": "item created"
  1030. },
  1031. "400": {
  1032. "description": "invalid input, object invalid"
  1033. },
  1034. "409": {
  1035. "description": "an existing item already exists"
  1036. }
  1037. }
  1038. },
  1039. "servers": [
  1040. {
  1041. "url": "",
  1042. "description": ""
  1043. }
  1044. ]
  1045. },
  1046. "/removeOperator": {
  1047. "delete": {
  1048. "tags": [
  1049. "Developers"
  1050. ],
  1051. "summary": "Remove an operator item",
  1052. "description": "Remove an operator",
  1053. "operationId": "removeOperator",
  1054. "requestBody": {
  1055. "description": "operator item to be removed",
  1056. "content": {
  1057. "application/json": {
  1058. "schema": {
  1059. "$ref": "#/components/schemas/removeItem"
  1060. }
  1061. }
  1062. }
  1063. },
  1064. "responses": {
  1065. "201": {
  1066. "description": "item removed"
  1067. },
  1068. "400": {
  1069. "description": "invalid input, object invalid"
  1070. },
  1071. "409": {
  1072. "description": "the item can't be removed"
  1073. }
  1074. }
  1075. },
  1076. "servers": [
  1077. {
  1078. "url": "",
  1079. "description": ""
  1080. }
  1081. ]
  1082. },
  1083. "/getSubjects": {
  1084. "get": {
  1085. "tags": [
  1086. "Developers"
  1087. ],
  1088. "summary": "Get the subjects",
  1089. "description": "Get the subjects\n",
  1090. "operationId": "getSubjects",
  1091. "parameters": [
  1092. {
  1093. "name": "id",
  1094. "in": "query",
  1095. "description": "id of the item to get",
  1096. "required": false,
  1097. "schema": {
  1098. "type": "string"
  1099. }
  1100. },
  1101. {
  1102. "name": "searchString",
  1103. "in": "query",
  1104. "description": "pass an optional search string for looking up inventory",
  1105. "required": false,
  1106. "schema": {
  1107. "type": "string"
  1108. }
  1109. },
  1110. {
  1111. "name": "skip",
  1112. "in": "query",
  1113. "description": "number of records to skip for pagination",
  1114. "required": false,
  1115. "schema": {
  1116. "minimum": 0,
  1117. "type": "integer",
  1118. "format": "int32"
  1119. }
  1120. },
  1121. {
  1122. "name": "limit",
  1123. "in": "query",
  1124. "description": "maximum number of records to return",
  1125. "required": false,
  1126. "schema": {
  1127. "maximum": 1000,
  1128. "minimum": 0,
  1129. "type": "integer",
  1130. "format": "int32"
  1131. }
  1132. }
  1133. ],
  1134. "responses": {
  1135. "200": {
  1136. "description": "search results matching criteria",
  1137. "content": {
  1138. "application/json": {
  1139. "schema": {
  1140. "type": "array",
  1141. "items": {
  1142. "$ref": "#/components/schemas/SubjectItem"
  1143. }
  1144. }
  1145. }
  1146. }
  1147. },
  1148. "400": {
  1149. "description": "bad input parameter"
  1150. }
  1151. }
  1152. },
  1153. "servers": [
  1154. {
  1155. "url": "",
  1156. "description": ""
  1157. }
  1158. ]
  1159. },
  1160. "/postSubject": {
  1161. "post": {
  1162. "tags": [
  1163. "Developers"
  1164. ],
  1165. "summary": "Post a subject item",
  1166. "description": "Post a subject",
  1167. "operationId": "postSubject",
  1168. "requestBody": {
  1169. "description": "subject item",
  1170. "content": {
  1171. "application/json": {
  1172. "schema": {
  1173. "$ref": "#/components/schemas/SubjectItem"
  1174. }
  1175. }
  1176. }
  1177. },
  1178. "responses": {
  1179. "201": {
  1180. "description": "item created"
  1181. },
  1182. "400": {
  1183. "description": "invalid input, object invalid"
  1184. },
  1185. "409": {
  1186. "description": "an existing item already exists"
  1187. }
  1188. }
  1189. },
  1190. "servers": [
  1191. {
  1192. "url": "",
  1193. "description": ""
  1194. }
  1195. ]
  1196. },
  1197. "/removeSubject": {
  1198. "delete": {
  1199. "tags": [
  1200. "Developers"
  1201. ],
  1202. "summary": "Remove a subject item",
  1203. "description": "Remove a subject",
  1204. "operationId": "removeSubject",
  1205. "requestBody": {
  1206. "description": "subject item to be removed",
  1207. "content": {
  1208. "application/json": {
  1209. "schema": {
  1210. "$ref": "#/components/schemas/removeItem"
  1211. }
  1212. }
  1213. }
  1214. },
  1215. "responses": {
  1216. "201": {
  1217. "description": "item removed"
  1218. },
  1219. "400": {
  1220. "description": "invalid input, object invalid"
  1221. },
  1222. "409": {
  1223. "description": "the item can't be removed"
  1224. }
  1225. }
  1226. },
  1227. "servers": [
  1228. {
  1229. "url": "",
  1230. "description": ""
  1231. }
  1232. ]
  1233. },
  1234. "/getAlarms": {
  1235. "get": {
  1236. "tags": [
  1237. "Developers"
  1238. ],
  1239. "summary": "Get the alarms",
  1240. "description": "Get the alarms\n",
  1241. "operationId": "getAlarms",
  1242. "parameters": [
  1243. {
  1244. "name": "id",
  1245. "in": "query",
  1246. "description": "id of the item to get",
  1247. "required": false,
  1248. "schema": {
  1249. "type": "string"
  1250. }
  1251. },
  1252. {
  1253. "name": "searchString",
  1254. "in": "query",
  1255. "description": "pass an optional search string for looking up inventory",
  1256. "required": false,
  1257. "schema": {
  1258. "type": "string"
  1259. }
  1260. },
  1261. {
  1262. "name": "skip",
  1263. "in": "query",
  1264. "description": "number of records to skip for pagination",
  1265. "required": false,
  1266. "schema": {
  1267. "minimum": 0,
  1268. "type": "integer",
  1269. "format": "int32"
  1270. }
  1271. },
  1272. {
  1273. "name": "limit",
  1274. "in": "query",
  1275. "description": "maximum number of records to return",
  1276. "required": false,
  1277. "schema": {
  1278. "maximum": 1000,
  1279. "minimum": 0,
  1280. "type": "integer",
  1281. "format": "int32"
  1282. }
  1283. }
  1284. ],
  1285. "responses": {
  1286. "200": {
  1287. "description": "search results matching criteria",
  1288. "content": {
  1289. "application/json": {
  1290. "schema": {
  1291. "type": "array",
  1292. "items": {
  1293. "$ref": "#/components/schemas/AlarmItem"
  1294. }
  1295. }
  1296. }
  1297. }
  1298. },
  1299. "400": {
  1300. "description": "bad input parameter"
  1301. }
  1302. }
  1303. },
  1304. "servers": [
  1305. {
  1306. "url": "",
  1307. "description": ""
  1308. }
  1309. ]
  1310. },
  1311. "/postAlarm": {
  1312. "post": {
  1313. "tags": [
  1314. "Developers"
  1315. ],
  1316. "summary": "Post an alarm",
  1317. "description": "Post an alarm",
  1318. "operationId": "postAlarm",
  1319. "requestBody": {
  1320. "description": "alarm item",
  1321. "content": {
  1322. "application/json": {
  1323. "schema": {
  1324. "$ref": "#/components/schemas/AlarmItem"
  1325. }
  1326. }
  1327. }
  1328. },
  1329. "responses": {
  1330. "201": {
  1331. "description": "item created"
  1332. },
  1333. "400": {
  1334. "description": "invalid input, object invalid"
  1335. },
  1336. "409": {
  1337. "description": "an existing item already exists"
  1338. }
  1339. }
  1340. },
  1341. "servers": [
  1342. {
  1343. "url": "",
  1344. "description": ""
  1345. }
  1346. ]
  1347. },
  1348. "/removeAlarm": {
  1349. "delete": {
  1350. "tags": [
  1351. "Developers"
  1352. ],
  1353. "summary": "Remove an alarm item",
  1354. "description": "Remove an alarm",
  1355. "operationId": "removeAlarm",
  1356. "requestBody": {
  1357. "description": "alarm item to be removed",
  1358. "content": {
  1359. "application/json": {
  1360. "schema": {
  1361. "$ref": "#/components/schemas/removeItem"
  1362. }
  1363. }
  1364. }
  1365. },
  1366. "responses": {
  1367. "201": {
  1368. "description": "item removed"
  1369. },
  1370. "400": {
  1371. "description": "invalid input, object invalid"
  1372. },
  1373. "409": {
  1374. "description": "the item can't be removed"
  1375. }
  1376. }
  1377. },
  1378. "servers": [
  1379. {
  1380. "url": "",
  1381. "description": ""
  1382. }
  1383. ]
  1384. },
  1385. "/getTracks": {
  1386. "get": {
  1387. "tags": [
  1388. "Developers"
  1389. ],
  1390. "summary": "Get the tracks",
  1391. "description": "Get the tracks\n",
  1392. "operationId": "getTracks",
  1393. "parameters": [
  1394. {
  1395. "name": "id",
  1396. "in": "query",
  1397. "description": "id of the item to get",
  1398. "required": false,
  1399. "schema": {
  1400. "type": "string"
  1401. }
  1402. },
  1403. {
  1404. "name": "searchString",
  1405. "in": "query",
  1406. "description": "pass an optional search string for looking up inventory",
  1407. "required": false,
  1408. "schema": {
  1409. "type": "string"
  1410. }
  1411. },
  1412. {
  1413. "name": "skip",
  1414. "in": "query",
  1415. "description": "number of records to skip for pagination",
  1416. "required": false,
  1417. "schema": {
  1418. "minimum": 0,
  1419. "type": "integer",
  1420. "format": "int32"
  1421. }
  1422. },
  1423. {
  1424. "name": "limit",
  1425. "in": "query",
  1426. "description": "maximum number of records to return",
  1427. "required": false,
  1428. "schema": {
  1429. "maximum": 1000,
  1430. "minimum": 0,
  1431. "type": "integer",
  1432. "format": "int32"
  1433. }
  1434. }
  1435. ],
  1436. "responses": {
  1437. "200": {
  1438. "description": "search results matching criteria",
  1439. "content": {
  1440. "application/json": {
  1441. "schema": {
  1442. "type": "array",
  1443. "items": {
  1444. "$ref": "#/components/schemas/TrackItem"
  1445. }
  1446. }
  1447. }
  1448. }
  1449. },
  1450. "400": {
  1451. "description": "bad input parameter"
  1452. }
  1453. }
  1454. },
  1455. "servers": [
  1456. {
  1457. "url": "",
  1458. "description": ""
  1459. }
  1460. ]
  1461. },
  1462. "/postTrack": {
  1463. "post": {
  1464. "tags": [
  1465. "Developers"
  1466. ],
  1467. "summary": "Post a track",
  1468. "description": "Post a track",
  1469. "operationId": "postTrack",
  1470. "requestBody": {
  1471. "description": "track item",
  1472. "content": {
  1473. "application/json": {
  1474. "schema": {
  1475. "$ref": "#/components/schemas/TrackItem"
  1476. }
  1477. }
  1478. }
  1479. },
  1480. "responses": {
  1481. "201": {
  1482. "description": "item created"
  1483. },
  1484. "400": {
  1485. "description": "invalid input, object invalid"
  1486. },
  1487. "409": {
  1488. "description": "an existing item already exists"
  1489. }
  1490. }
  1491. },
  1492. "servers": [
  1493. {
  1494. "url": "",
  1495. "description": ""
  1496. }
  1497. ]
  1498. },
  1499. "/removeTrack": {
  1500. "delete": {
  1501. "tags": [
  1502. "Developers"
  1503. ],
  1504. "summary": "Remove a track item",
  1505. "description": "Remove a track",
  1506. "operationId": "removeTrack",
  1507. "requestBody": {
  1508. "description": "track item to be removed",
  1509. "content": {
  1510. "application/json": {
  1511. "schema": {
  1512. "$ref": "#/components/schemas/removeItem"
  1513. }
  1514. }
  1515. }
  1516. },
  1517. "responses": {
  1518. "201": {
  1519. "description": "item removed"
  1520. },
  1521. "400": {
  1522. "description": "invalid input, object invalid"
  1523. },
  1524. "409": {
  1525. "description": "the item can't be removed"
  1526. }
  1527. }
  1528. },
  1529. "servers": [
  1530. {
  1531. "url": "",
  1532. "description": ""
  1533. }
  1534. ]
  1535. },
  1536. "/getSettings": {
  1537. "get": {
  1538. "tags": [
  1539. "Developers"
  1540. ],
  1541. "summary": "Get the groups of settings",
  1542. "description": "Get the settings\n",
  1543. "operationId": "getSettings",
  1544. "parameters": [
  1545. {
  1546. "name": "id",
  1547. "in": "query",
  1548. "description": "id of the item to get",
  1549. "required": false,
  1550. "schema": {
  1551. "type": "string"
  1552. }
  1553. },
  1554. {
  1555. "name": "searchString",
  1556. "in": "query",
  1557. "description": "pass an optional search string for looking up inventory",
  1558. "required": false,
  1559. "schema": {
  1560. "type": "string"
  1561. }
  1562. },
  1563. {
  1564. "name": "skip",
  1565. "in": "query",
  1566. "description": "number of records to skip for pagination",
  1567. "required": false,
  1568. "schema": {
  1569. "minimum": 0,
  1570. "type": "integer",
  1571. "format": "int32"
  1572. }
  1573. },
  1574. {
  1575. "name": "limit",
  1576. "in": "query",
  1577. "description": "maximum number of records to return",
  1578. "required": false,
  1579. "schema": {
  1580. "maximum": 1000,
  1581. "minimum": 0,
  1582. "type": "integer",
  1583. "format": "int32"
  1584. }
  1585. }
  1586. ],
  1587. "responses": {
  1588. "200": {
  1589. "description": "search results matching criteria",
  1590. "content": {
  1591. "application/json": {
  1592. "schema": {
  1593. "type": "array",
  1594. "items": {
  1595. "$ref": "#/components/schemas/TrackItem"
  1596. }
  1597. }
  1598. }
  1599. }
  1600. },
  1601. "400": {
  1602. "description": "bad input parameter"
  1603. }
  1604. }
  1605. },
  1606. "servers": [
  1607. {
  1608. "url": "",
  1609. "description": ""
  1610. }
  1611. ]
  1612. },
  1613. "/postSetting": {
  1614. "post": {
  1615. "tags": [
  1616. "Developers"
  1617. ],
  1618. "summary": "Post a group of settings",
  1619. "description": "Post a group settings",
  1620. "operationId": "postSetting",
  1621. "requestBody": {
  1622. "description": "group of settings item",
  1623. "content": {
  1624. "application/json": {
  1625. "schema": {
  1626. "$ref": "#/components/schemas/SettingItem"
  1627. }
  1628. }
  1629. }
  1630. },
  1631. "responses": {
  1632. "201": {
  1633. "description": "item created"
  1634. },
  1635. "400": {
  1636. "description": "invalid input, object invalid"
  1637. },
  1638. "409": {
  1639. "description": "an existing item already exists"
  1640. }
  1641. }
  1642. },
  1643. "servers": [
  1644. {
  1645. "url": "",
  1646. "description": ""
  1647. }
  1648. ]
  1649. },
  1650. "/removeSetting": {
  1651. "delete": {
  1652. "tags": [
  1653. "Developers"
  1654. ],
  1655. "summary": "Remove a group of settings item",
  1656. "description": "Remove a group of settings",
  1657. "operationId": "removeSetting",
  1658. "requestBody": {
  1659. "description": "group of setting item to be removed",
  1660. "content": {
  1661. "application/json": {
  1662. "schema": {
  1663. "$ref": "#/components/schemas/removeItem"
  1664. }
  1665. }
  1666. }
  1667. },
  1668. "responses": {
  1669. "201": {
  1670. "description": "item removed"
  1671. },
  1672. "400": {
  1673. "description": "invalid input, object invalid"
  1674. },
  1675. "409": {
  1676. "description": "the item can't be removed"
  1677. }
  1678. }
  1679. },
  1680. "servers": [
  1681. {
  1682. "url": "",
  1683. "description": ""
  1684. }
  1685. ]
  1686. }
  1687. },
  1688. "components": {
  1689. "schemas": {
  1690. "removeItem": {
  1691. "required": [
  1692. "id"
  1693. ],
  1694. "type": "object",
  1695. "properties": {
  1696. "id": {
  1697. "type": "string",
  1698. "format": "uuid"
  1699. }
  1700. },
  1701. "description": "Item to be removed"
  1702. },
  1703. "buildingItem": {
  1704. "required": [
  1705. "id",
  1706. "name"
  1707. ],
  1708. "type": "object",
  1709. "properties": {
  1710. "id": {
  1711. "type": "string",
  1712. "description": "ID",
  1713. "format": "uuid"
  1714. },
  1715. "name": {
  1716. "type": "string",
  1717. "description": "Name",
  1718. "example": "Hospital"
  1719. },
  1720. "city": {
  1721. "type": "string",
  1722. "description": "City"
  1723. },
  1724. "address": {
  1725. "type": "string",
  1726. "description": "Address"
  1727. },
  1728. "latitude": {
  1729. "type": "number",
  1730. "description": "Latitude"
  1731. },
  1732. "longitude": {
  1733. "type": "number",
  1734. "description": "Longitude"
  1735. }
  1736. },
  1737. "description": "A building or an area that groups together several floors"
  1738. },
  1739. "floorItem": {
  1740. "required": [
  1741. "id",
  1742. "name"
  1743. ],
  1744. "type": "object",
  1745. "properties": {
  1746. "id": {
  1747. "type": "string",
  1748. "description": "ID",
  1749. "format": "uuid"
  1750. },
  1751. "name": {
  1752. "type": "string",
  1753. "description": "Name",
  1754. "example": "Building 1 - Floor 1"
  1755. },
  1756. "image": {
  1757. "type": "string",
  1758. "description": "Image",
  1759. "format": "uri",
  1760. "example": "The URL of the image"
  1761. },
  1762. "description": {
  1763. "type": "string",
  1764. "description": "Description",
  1765. "example": "The description of the floor"
  1766. },
  1767. "scale": {
  1768. "type": "number",
  1769. "description": "Scale",
  1770. "example": 1
  1771. },
  1772. "building": {
  1773. "type": "string",
  1774. "description": "Building",
  1775. "format": "dbid"
  1776. }
  1777. },
  1778. "description": "A floor or a space of a building"
  1779. },
  1780. "zoneItem": {
  1781. "required": [
  1782. "id",
  1783. "name"
  1784. ],
  1785. "type": "object",
  1786. "properties": {
  1787. "id": {
  1788. "type": "string",
  1789. "description": "ID",
  1790. "format": "uuid"
  1791. },
  1792. "name": {
  1793. "type": "string",
  1794. "description": "Name",
  1795. "example": "Floor 1 - Room 1"
  1796. },
  1797. "groups": {
  1798. "type": "string",
  1799. "description": "Groups"
  1800. },
  1801. "floor": {
  1802. "type": "string",
  1803. "description": "Floor",
  1804. "format": "dbid"
  1805. },
  1806. "building": {
  1807. "type": "string",
  1808. "description": "Building",
  1809. "format": "dbid"
  1810. }
  1811. },
  1812. "description": "A zone is a room or a sub-area of a floor"
  1813. },
  1814. "gatewayItem": {
  1815. "required": [
  1816. "id",
  1817. "name"
  1818. ],
  1819. "type": "object",
  1820. "properties": {
  1821. "id": {
  1822. "type": "string",
  1823. "description": "ID",
  1824. "format": "uuid"
  1825. },
  1826. "name": {
  1827. "type": "string",
  1828. "description": "Name"
  1829. },
  1830. "mac": {
  1831. "type": "string",
  1832. "description": "MAC"
  1833. },
  1834. "status": {
  1835. "type": "boolean",
  1836. "description": "Status"
  1837. },
  1838. "model": {
  1839. "type": "string",
  1840. "description": "Model"
  1841. },
  1842. "ip": {
  1843. "type": "string",
  1844. "description": "IP"
  1845. },
  1846. "position": {
  1847. "type": "string",
  1848. "description": "Position"
  1849. },
  1850. "x": {
  1851. "type": "number",
  1852. "description": "X"
  1853. },
  1854. "y": {
  1855. "type": "number",
  1856. "description": "Y"
  1857. },
  1858. "floor": {
  1859. "type": "string",
  1860. "description": "Floor",
  1861. "format": "dbid"
  1862. },
  1863. "building": {
  1864. "type": "string",
  1865. "description": "Building",
  1866. "format": "dbid"
  1867. },
  1868. "notes": {
  1869. "type": "string",
  1870. "description": "Notes"
  1871. }
  1872. },
  1873. "description": "A gateway of the system"
  1874. },
  1875. "trackerItem": {
  1876. "required": [
  1877. "id",
  1878. "name"
  1879. ],
  1880. "type": "object",
  1881. "properties": {
  1882. "id": {
  1883. "type": "string",
  1884. "description": "ID",
  1885. "format": "uuid"
  1886. },
  1887. "name": {
  1888. "type": "string",
  1889. "description": "Name"
  1890. },
  1891. "mac": {
  1892. "type": "string",
  1893. "description": "MAC"
  1894. },
  1895. "status": {
  1896. "type": "string",
  1897. "description": "Status"
  1898. },
  1899. "model": {
  1900. "type": "string",
  1901. "description": "Model"
  1902. },
  1903. "position": {
  1904. "type": "string",
  1905. "description": "Position"
  1906. },
  1907. "x": {
  1908. "type": "number",
  1909. "description": "X"
  1910. },
  1911. "y": {
  1912. "type": "number",
  1913. "description": "Y"
  1914. },
  1915. "building": {
  1916. "type": "string",
  1917. "description": "Building",
  1918. "format": "dbid"
  1919. },
  1920. "floor": {
  1921. "type": "string",
  1922. "description": "Floor",
  1923. "format": "dbid"
  1924. },
  1925. "notes": {
  1926. "type": "string",
  1927. "description": "Notes"
  1928. }
  1929. },
  1930. "description": "A tracker of the system"
  1931. },
  1932. "trackerZoneItem": {
  1933. "required": [
  1934. "id",
  1935. "name"
  1936. ],
  1937. "type": "object",
  1938. "properties": {
  1939. "id": {
  1940. "type": "string",
  1941. "description": "ID",
  1942. "format": "uuid"
  1943. },
  1944. "name": {
  1945. "type": "string",
  1946. "description": "Name"
  1947. },
  1948. "trackerList": {
  1949. "type": "array",
  1950. "description": "List of trackers"
  1951. },
  1952. "zone": {
  1953. "type": "string",
  1954. "description": "Zone",
  1955. "format": "dbid"
  1956. },
  1957. "days": {
  1958. "type": "string",
  1959. "format": "list",
  1960. "description": "Days"
  1961. },
  1962. "hours": {
  1963. "type": "string",
  1964. "format": "list",
  1965. "description": "Hours"
  1966. }
  1967. },
  1968. "description": "A tracker of the system"
  1969. },
  1970. "operatorItem": {
  1971. "required": [
  1972. "id",
  1973. "name"
  1974. ],
  1975. "type": "object",
  1976. "properties": {
  1977. "id": {
  1978. "type": "string",
  1979. "description": "ID"
  1980. },
  1981. "name": {
  1982. "type": "string",
  1983. "description": "Name"
  1984. },
  1985. "phone": {
  1986. "type": "string",
  1987. "description": "Phone"
  1988. },
  1989. "zones": {
  1990. "type": "string",
  1991. "description": "Zones"
  1992. },
  1993. "groups": {
  1994. "type": "string",
  1995. "description": "Groups"
  1996. },
  1997. "notes": {
  1998. "type": "string",
  1999. "description": "Notes"
  2000. },
  2001. "building": {
  2002. "type": "string",
  2003. "description": "Building",
  2004. "format": "dbid"
  2005. }
  2006. },
  2007. "description": "An operator who monitors the subjects"
  2008. },
  2009. "subjectItem": {
  2010. "required": [
  2011. "id",
  2012. "name"
  2013. ],
  2014. "type": "object",
  2015. "properties": {
  2016. "id": {
  2017. "type": "string",
  2018. "description": "ID"
  2019. },
  2020. "name": {
  2021. "type": "string",
  2022. "description": "Name"
  2023. },
  2024. "role": {
  2025. "type": "string",
  2026. "description": "Role"
  2027. },
  2028. "phone": {
  2029. "type": "string",
  2030. "description": "Phone"
  2031. },
  2032. "zones": {
  2033. "type": "string",
  2034. "description": "Zones"
  2035. },
  2036. "groups": {
  2037. "type": "string",
  2038. "description": "Groups"
  2039. },
  2040. "building": {
  2041. "type": "string",
  2042. "description": "Building",
  2043. "format": "dbid"
  2044. },
  2045. "notes": {
  2046. "type": "string",
  2047. "description": "Notes"
  2048. }
  2049. },
  2050. "description": "Person or object monitored by the operators"
  2051. },
  2052. "alarmItem": {
  2053. "required": [
  2054. "id"
  2055. ],
  2056. "type": "object",
  2057. "properties": {
  2058. "id": {
  2059. "type": "string",
  2060. "description": "ID"
  2061. },
  2062. "time": {
  2063. "type": "string",
  2064. "description": "Time",
  2065. "format": "time"
  2066. },
  2067. "type": {
  2068. "type": "string",
  2069. "description": "Type"
  2070. },
  2071. "status": {
  2072. "type": "string",
  2073. "description": "Status",
  2074. "enum": [
  2075. "away",
  2076. "help",
  2077. "managed"
  2078. ]
  2079. },
  2080. "gateway": {
  2081. "type": "string",
  2082. "description": "Gateway",
  2083. "format": "uuid"
  2084. },
  2085. "gatewayMac": {
  2086. "type": "string",
  2087. "description": "Gateway MAC"
  2088. },
  2089. "gatewayName": {
  2090. "type": "string",
  2091. "description": "Gateway name"
  2092. },
  2093. "tracker": {
  2094. "type": "string",
  2095. "description": "Tracker",
  2096. "format": "dbid"
  2097. },
  2098. "trackerMac": {
  2099. "type": "string",
  2100. "description": "Tracker MAC"
  2101. },
  2102. "trackerName": {
  2103. "type": "string",
  2104. "description": "Tracker name"
  2105. },
  2106. "subject": {
  2107. "type": "string",
  2108. "description": "Subject",
  2109. "format": "dbid"
  2110. },
  2111. "operator": {
  2112. "type": "string",
  2113. "description": "Operator",
  2114. "format": "dbid"
  2115. },
  2116. "building": {
  2117. "type": "string",
  2118. "description": "Building",
  2119. "format": "dbid"
  2120. },
  2121. "floor": {
  2122. "type": "string",
  2123. "description": "Floor",
  2124. "format": "dbid"
  2125. }
  2126. },
  2127. "description": "Alarm triggered if a monitored subject is lost or out of their zone"
  2128. },
  2129. "trackItem": {
  2130. "required": [
  2131. "id"
  2132. ],
  2133. "type": "object",
  2134. "properties": {
  2135. "id": {
  2136. "type": "string"
  2137. },
  2138. "timestamp": {
  2139. "type": "string",
  2140. "description": "Time",
  2141. "format": "date-time"
  2142. },
  2143. "type": {
  2144. "type": "string",
  2145. "description": "Type"
  2146. },
  2147. "status": {
  2148. "type": "string",
  2149. "description": "Status",
  2150. "enum": [
  2151. "lost",
  2152. "detected",
  2153. "away",
  2154. "help"
  2155. ]
  2156. },
  2157. "gateway": {
  2158. "type": "string",
  2159. "description": "Gateway",
  2160. "format": "dbid"
  2161. },
  2162. "gatewayMac": {
  2163. "type": "string",
  2164. "description": "Gateway MAC"
  2165. },
  2166. "gatewayName": {
  2167. "type": "string",
  2168. "description": "Gateway name"
  2169. },
  2170. "tracker": {
  2171. "type": "string",
  2172. "description": "Tracker",
  2173. "format": "dbid"
  2174. },
  2175. "trackerMac": {
  2176. "type": "string",
  2177. "description": "Tracker MAC"
  2178. },
  2179. "trackerName": {
  2180. "type": "string",
  2181. "description": "Tracker name"
  2182. },
  2183. "subject": {
  2184. "type": "string",
  2185. "description": "Subject",
  2186. "format": "dbid"
  2187. },
  2188. "subjectName": {
  2189. "type": "string",
  2190. "description": "Subject name"
  2191. },
  2192. "signal": {
  2193. "type": "number"
  2194. },
  2195. "building": {
  2196. "type": "string",
  2197. "description": "Building",
  2198. "format": "dbid"
  2199. },
  2200. "buildingName": {
  2201. "type": "string",
  2202. "description": "Building name"
  2203. },
  2204. "floor": {
  2205. "type": "string",
  2206. "description": "Floor",
  2207. "format": "dbid"
  2208. },
  2209. "floorName": {
  2210. "type": "string",
  2211. "description": "Floor name"
  2212. }
  2213. },
  2214. "description": "Log of a state change of a tracker with respect to a gateway"
  2215. },
  2216. "settingItem": {
  2217. "required": [
  2218. "id"
  2219. ],
  2220. "type": "object",
  2221. "properties": {
  2222. "id": {
  2223. "type": "string",
  2224. "description": "ID"
  2225. },
  2226. "name": {
  2227. "type": "string",
  2228. "description": "Setting name"
  2229. },
  2230. "role": {
  2231. "type": "string",
  2232. "description": "Role",
  2233. "enum": [
  2234. "developer",
  2235. "administrator",
  2236. "user"
  2237. ]
  2238. },
  2239. "debug": {
  2240. "type": "boolean",
  2241. "description": "Debug mode",
  2242. "format": "boolean"
  2243. }
  2244. },
  2245. "description": "General setting of the app"
  2246. }
  2247. }
  2248. }
  2249. }