rsmp_schema 0.8.8 → 0.9.0

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 (812) hide show
  1. checksums.yaml +4 -4
  2. data/.devcontainer/devcontainer.json +22 -0
  3. data/.github/copilot-instructions.md +196 -0
  4. data/.gitignore +2 -0
  5. data/.tool-versions +1 -1
  6. data/Gemfile.lock +12 -16
  7. data/examples/validate.rb +8 -10
  8. data/lib/rsmp_schema/convert/export/json_schema.rb +78 -38
  9. data/lib/rsmp_schema/version.rb +1 -1
  10. data/lib/rsmp_schema.rb +5 -0
  11. data/rsmp_schema.gemspec +2 -2
  12. data/schemas/core/3.3.0/aggregated_status.json +90 -0
  13. data/schemas/core/3.3.0/aggregated_status_request.json +9 -0
  14. data/schemas/core/3.3.0/alarm.json +75 -0
  15. data/schemas/core/3.3.0/alarm_request.json +3 -0
  16. data/schemas/core/3.3.0/command_request.json +26 -0
  17. data/schemas/core/3.3.0/command_response.json +35 -0
  18. data/schemas/core/3.3.0/core.json +39 -0
  19. data/schemas/core/3.3.0/definitions.json +35 -0
  20. data/schemas/core/3.3.0/rsmp.json +133 -0
  21. data/schemas/core/3.3.0/status.json +21 -0
  22. data/schemas/core/3.3.0/status_request.json +23 -0
  23. data/schemas/core/3.3.0/status_subscribe.json +31 -0
  24. data/schemas/core/3.3.0/version.json +57 -0
  25. data/schemas/tlc/1.0.10/alarms/A0001.json +1 -0
  26. data/schemas/tlc/1.0.10/alarms/A0002.json +1 -0
  27. data/schemas/tlc/1.0.10/alarms/A0003.json +1 -0
  28. data/schemas/tlc/1.0.10/alarms/A0004.json +1 -0
  29. data/schemas/tlc/1.0.10/alarms/A0005.json +1 -0
  30. data/schemas/tlc/1.0.10/alarms/A0006.json +1 -0
  31. data/schemas/tlc/1.0.10/alarms/A0007.json +1 -0
  32. data/schemas/tlc/1.0.10/alarms/A0008.json +15 -46
  33. data/schemas/tlc/1.0.10/alarms/A0009.json +1 -0
  34. data/schemas/tlc/1.0.10/alarms/A0101.json +1 -0
  35. data/schemas/tlc/1.0.10/alarms/A0201.json +20 -45
  36. data/schemas/tlc/1.0.10/alarms/A0202.json +20 -45
  37. data/schemas/tlc/1.0.10/alarms/A0301.json +70 -110
  38. data/schemas/tlc/1.0.10/alarms/A0302.json +93 -136
  39. data/schemas/tlc/1.0.10/alarms/alarms.json +1 -0
  40. data/schemas/tlc/1.0.10/commands/M0001.json +72 -124
  41. data/schemas/tlc/1.0.10/commands/M0002.json +49 -92
  42. data/schemas/tlc/1.0.10/commands/M0003.json +49 -92
  43. data/schemas/tlc/1.0.10/commands/M0004.json +32 -66
  44. data/schemas/tlc/1.0.10/commands/M0005.json +49 -92
  45. data/schemas/tlc/1.0.10/commands/M0006.json +49 -92
  46. data/schemas/tlc/1.0.10/commands/M0007.json +32 -66
  47. data/schemas/tlc/1.0.10/commands/M0008.json +49 -92
  48. data/schemas/tlc/1.0.10/commands/M0010.json +32 -66
  49. data/schemas/tlc/1.0.10/commands/M0011.json +32 -66
  50. data/schemas/tlc/1.0.10/commands/M0012.json +32 -60
  51. data/schemas/tlc/1.0.10/commands/M0013.json +32 -60
  52. data/schemas/tlc/1.0.10/commands/M0019.json +67 -119
  53. data/schemas/tlc/1.0.10/commands/M0103.json +52 -83
  54. data/schemas/tlc/1.0.10/commands/M0104.json +121 -200
  55. data/schemas/tlc/1.0.10/commands/command_requests.json +1 -0
  56. data/schemas/tlc/1.0.10/commands/command_responses.json +1 -0
  57. data/schemas/tlc/1.0.10/commands/commands.json +1 -0
  58. data/schemas/tlc/1.0.10/rsmp.json +1 -0
  59. data/schemas/tlc/1.0.10/statuses/S0001.json +78 -124
  60. data/schemas/tlc/1.0.10/statuses/S0002.json +29 -48
  61. data/schemas/tlc/1.0.10/statuses/S0003.json +44 -66
  62. data/schemas/tlc/1.0.10/statuses/S0004.json +44 -66
  63. data/schemas/tlc/1.0.10/statuses/S0005.json +29 -54
  64. data/schemas/tlc/1.0.10/statuses/S0006.json +44 -78
  65. data/schemas/tlc/1.0.10/statuses/S0007.json +44 -78
  66. data/schemas/tlc/1.0.10/statuses/S0008.json +44 -78
  67. data/schemas/tlc/1.0.10/statuses/S0009.json +44 -78
  68. data/schemas/tlc/1.0.10/statuses/S0010.json +44 -78
  69. data/schemas/tlc/1.0.10/statuses/S0011.json +44 -78
  70. data/schemas/tlc/1.0.10/statuses/S0012.json +44 -78
  71. data/schemas/tlc/1.0.10/statuses/S0013.json +44 -78
  72. data/schemas/tlc/1.0.10/statuses/S0014.json +29 -54
  73. data/schemas/tlc/1.0.10/statuses/S0015.json +29 -54
  74. data/schemas/tlc/1.0.10/statuses/S0016.json +29 -54
  75. data/schemas/tlc/1.0.10/statuses/S0017.json +29 -54
  76. data/schemas/tlc/1.0.10/statuses/S0018.json +29 -54
  77. data/schemas/tlc/1.0.10/statuses/S0019.json +29 -54
  78. data/schemas/tlc/1.0.10/statuses/S0020.json +44 -78
  79. data/schemas/tlc/1.0.10/statuses/S0021.json +30 -49
  80. data/schemas/tlc/1.0.10/statuses/S0091.json +47 -69
  81. data/schemas/tlc/1.0.10/statuses/S0092.json +47 -69
  82. data/schemas/tlc/1.0.10/statuses/S0095.json +29 -48
  83. data/schemas/tlc/1.0.10/statuses/S0096.json +110 -180
  84. data/schemas/tlc/1.0.10/statuses/S0201.json +44 -78
  85. data/schemas/tlc/1.0.10/statuses/S0202.json +44 -78
  86. data/schemas/tlc/1.0.10/statuses/S0203.json +44 -78
  87. data/schemas/tlc/1.0.10/statuses/S0204.json +178 -284
  88. data/schemas/tlc/1.0.10/statuses/statuses.json +1 -0
  89. data/schemas/tlc/1.0.13/alarms/A0001.json +1 -0
  90. data/schemas/tlc/1.0.13/alarms/A0002.json +1 -0
  91. data/schemas/tlc/1.0.13/alarms/A0003.json +1 -0
  92. data/schemas/tlc/1.0.13/alarms/A0004.json +1 -0
  93. data/schemas/tlc/1.0.13/alarms/A0005.json +1 -0
  94. data/schemas/tlc/1.0.13/alarms/A0006.json +1 -0
  95. data/schemas/tlc/1.0.13/alarms/A0007.json +1 -0
  96. data/schemas/tlc/1.0.13/alarms/A0008.json +15 -46
  97. data/schemas/tlc/1.0.13/alarms/A0009.json +1 -0
  98. data/schemas/tlc/1.0.13/alarms/A0101.json +1 -0
  99. data/schemas/tlc/1.0.13/alarms/A0201.json +20 -45
  100. data/schemas/tlc/1.0.13/alarms/A0202.json +20 -45
  101. data/schemas/tlc/1.0.13/alarms/A0301.json +70 -110
  102. data/schemas/tlc/1.0.13/alarms/A0302.json +93 -136
  103. data/schemas/tlc/1.0.13/alarms/alarms.json +1 -0
  104. data/schemas/tlc/1.0.13/commands/M0001.json +72 -124
  105. data/schemas/tlc/1.0.13/commands/M0002.json +49 -92
  106. data/schemas/tlc/1.0.13/commands/M0003.json +49 -92
  107. data/schemas/tlc/1.0.13/commands/M0004.json +32 -66
  108. data/schemas/tlc/1.0.13/commands/M0005.json +49 -92
  109. data/schemas/tlc/1.0.13/commands/M0006.json +49 -92
  110. data/schemas/tlc/1.0.13/commands/M0007.json +32 -66
  111. data/schemas/tlc/1.0.13/commands/M0008.json +49 -92
  112. data/schemas/tlc/1.0.13/commands/M0010.json +32 -66
  113. data/schemas/tlc/1.0.13/commands/M0011.json +32 -66
  114. data/schemas/tlc/1.0.13/commands/M0012.json +32 -60
  115. data/schemas/tlc/1.0.13/commands/M0013.json +32 -60
  116. data/schemas/tlc/1.0.13/commands/M0014.json +49 -86
  117. data/schemas/tlc/1.0.13/commands/M0015.json +49 -92
  118. data/schemas/tlc/1.0.13/commands/M0016.json +32 -60
  119. data/schemas/tlc/1.0.13/commands/M0017.json +32 -60
  120. data/schemas/tlc/1.0.13/commands/M0018.json +49 -92
  121. data/schemas/tlc/1.0.13/commands/M0019.json +67 -119
  122. data/schemas/tlc/1.0.13/commands/M0103.json +52 -83
  123. data/schemas/tlc/1.0.13/commands/M0104.json +121 -200
  124. data/schemas/tlc/1.0.13/commands/command_requests.json +1 -0
  125. data/schemas/tlc/1.0.13/commands/command_responses.json +1 -0
  126. data/schemas/tlc/1.0.13/commands/commands.json +1 -0
  127. data/schemas/tlc/1.0.13/rsmp.json +1 -0
  128. data/schemas/tlc/1.0.13/statuses/S0001.json +78 -124
  129. data/schemas/tlc/1.0.13/statuses/S0002.json +29 -48
  130. data/schemas/tlc/1.0.13/statuses/S0003.json +44 -66
  131. data/schemas/tlc/1.0.13/statuses/S0004.json +44 -66
  132. data/schemas/tlc/1.0.13/statuses/S0005.json +29 -54
  133. data/schemas/tlc/1.0.13/statuses/S0006.json +44 -78
  134. data/schemas/tlc/1.0.13/statuses/S0007.json +44 -78
  135. data/schemas/tlc/1.0.13/statuses/S0008.json +44 -78
  136. data/schemas/tlc/1.0.13/statuses/S0009.json +44 -78
  137. data/schemas/tlc/1.0.13/statuses/S0010.json +44 -78
  138. data/schemas/tlc/1.0.13/statuses/S0011.json +44 -78
  139. data/schemas/tlc/1.0.13/statuses/S0012.json +44 -78
  140. data/schemas/tlc/1.0.13/statuses/S0013.json +44 -78
  141. data/schemas/tlc/1.0.13/statuses/S0014.json +29 -54
  142. data/schemas/tlc/1.0.13/statuses/S0015.json +29 -54
  143. data/schemas/tlc/1.0.13/statuses/S0016.json +29 -54
  144. data/schemas/tlc/1.0.13/statuses/S0017.json +29 -54
  145. data/schemas/tlc/1.0.13/statuses/S0018.json +29 -54
  146. data/schemas/tlc/1.0.13/statuses/S0019.json +29 -54
  147. data/schemas/tlc/1.0.13/statuses/S0020.json +44 -78
  148. data/schemas/tlc/1.0.13/statuses/S0021.json +30 -49
  149. data/schemas/tlc/1.0.13/statuses/S0022.json +29 -48
  150. data/schemas/tlc/1.0.13/statuses/S0023.json +30 -49
  151. data/schemas/tlc/1.0.13/statuses/S0024.json +30 -49
  152. data/schemas/tlc/1.0.13/statuses/S0025.json +153 -241
  153. data/schemas/tlc/1.0.13/statuses/S0026.json +29 -48
  154. data/schemas/tlc/1.0.13/statuses/S0027.json +29 -48
  155. data/schemas/tlc/1.0.13/statuses/S0028.json +29 -48
  156. data/schemas/tlc/1.0.13/statuses/S0029.json +29 -48
  157. data/schemas/tlc/1.0.13/statuses/S0091.json +47 -69
  158. data/schemas/tlc/1.0.13/statuses/S0092.json +47 -69
  159. data/schemas/tlc/1.0.13/statuses/S0095.json +29 -48
  160. data/schemas/tlc/1.0.13/statuses/S0096.json +110 -180
  161. data/schemas/tlc/1.0.13/statuses/S0201.json +44 -78
  162. data/schemas/tlc/1.0.13/statuses/S0202.json +44 -78
  163. data/schemas/tlc/1.0.13/statuses/S0203.json +44 -78
  164. data/schemas/tlc/1.0.13/statuses/S0204.json +178 -284
  165. data/schemas/tlc/1.0.13/statuses/statuses.json +1 -0
  166. data/schemas/tlc/1.0.14/alarms/A0001.json +1 -0
  167. data/schemas/tlc/1.0.14/alarms/A0002.json +1 -0
  168. data/schemas/tlc/1.0.14/alarms/A0003.json +1 -0
  169. data/schemas/tlc/1.0.14/alarms/A0004.json +1 -0
  170. data/schemas/tlc/1.0.14/alarms/A0005.json +1 -0
  171. data/schemas/tlc/1.0.14/alarms/A0006.json +1 -0
  172. data/schemas/tlc/1.0.14/alarms/A0007.json +1 -0
  173. data/schemas/tlc/1.0.14/alarms/A0008.json +15 -46
  174. data/schemas/tlc/1.0.14/alarms/A0009.json +1 -0
  175. data/schemas/tlc/1.0.14/alarms/A0101.json +1 -0
  176. data/schemas/tlc/1.0.14/alarms/A0201.json +20 -45
  177. data/schemas/tlc/1.0.14/alarms/A0202.json +20 -45
  178. data/schemas/tlc/1.0.14/alarms/A0301.json +70 -110
  179. data/schemas/tlc/1.0.14/alarms/A0302.json +93 -136
  180. data/schemas/tlc/1.0.14/alarms/alarms.json +1 -0
  181. data/schemas/tlc/1.0.14/commands/M0001.json +72 -124
  182. data/schemas/tlc/1.0.14/commands/M0002.json +49 -92
  183. data/schemas/tlc/1.0.14/commands/M0003.json +49 -92
  184. data/schemas/tlc/1.0.14/commands/M0004.json +32 -66
  185. data/schemas/tlc/1.0.14/commands/M0005.json +49 -92
  186. data/schemas/tlc/1.0.14/commands/M0006.json +49 -92
  187. data/schemas/tlc/1.0.14/commands/M0007.json +32 -66
  188. data/schemas/tlc/1.0.14/commands/M0008.json +49 -92
  189. data/schemas/tlc/1.0.14/commands/M0010.json +32 -66
  190. data/schemas/tlc/1.0.14/commands/M0011.json +32 -66
  191. data/schemas/tlc/1.0.14/commands/M0012.json +32 -60
  192. data/schemas/tlc/1.0.14/commands/M0013.json +32 -60
  193. data/schemas/tlc/1.0.14/commands/M0014.json +49 -86
  194. data/schemas/tlc/1.0.14/commands/M0015.json +49 -92
  195. data/schemas/tlc/1.0.14/commands/M0016.json +32 -60
  196. data/schemas/tlc/1.0.14/commands/M0017.json +32 -60
  197. data/schemas/tlc/1.0.14/commands/M0018.json +49 -92
  198. data/schemas/tlc/1.0.14/commands/M0019.json +67 -119
  199. data/schemas/tlc/1.0.14/commands/M0103.json +52 -83
  200. data/schemas/tlc/1.0.14/commands/M0104.json +121 -200
  201. data/schemas/tlc/1.0.14/commands/command_requests.json +1 -0
  202. data/schemas/tlc/1.0.14/commands/command_responses.json +1 -0
  203. data/schemas/tlc/1.0.14/commands/commands.json +1 -0
  204. data/schemas/tlc/1.0.14/rsmp.json +1 -0
  205. data/schemas/tlc/1.0.14/statuses/S0001.json +78 -124
  206. data/schemas/tlc/1.0.14/statuses/S0002.json +29 -48
  207. data/schemas/tlc/1.0.14/statuses/S0003.json +44 -66
  208. data/schemas/tlc/1.0.14/statuses/S0004.json +44 -66
  209. data/schemas/tlc/1.0.14/statuses/S0005.json +29 -54
  210. data/schemas/tlc/1.0.14/statuses/S0006.json +44 -78
  211. data/schemas/tlc/1.0.14/statuses/S0007.json +44 -78
  212. data/schemas/tlc/1.0.14/statuses/S0008.json +44 -78
  213. data/schemas/tlc/1.0.14/statuses/S0009.json +44 -78
  214. data/schemas/tlc/1.0.14/statuses/S0010.json +44 -78
  215. data/schemas/tlc/1.0.14/statuses/S0011.json +44 -78
  216. data/schemas/tlc/1.0.14/statuses/S0012.json +44 -78
  217. data/schemas/tlc/1.0.14/statuses/S0013.json +44 -78
  218. data/schemas/tlc/1.0.14/statuses/S0014.json +29 -54
  219. data/schemas/tlc/1.0.14/statuses/S0015.json +29 -54
  220. data/schemas/tlc/1.0.14/statuses/S0016.json +29 -54
  221. data/schemas/tlc/1.0.14/statuses/S0017.json +29 -54
  222. data/schemas/tlc/1.0.14/statuses/S0018.json +29 -54
  223. data/schemas/tlc/1.0.14/statuses/S0019.json +29 -54
  224. data/schemas/tlc/1.0.14/statuses/S0020.json +44 -78
  225. data/schemas/tlc/1.0.14/statuses/S0021.json +30 -49
  226. data/schemas/tlc/1.0.14/statuses/S0022.json +29 -48
  227. data/schemas/tlc/1.0.14/statuses/S0023.json +30 -49
  228. data/schemas/tlc/1.0.14/statuses/S0024.json +30 -49
  229. data/schemas/tlc/1.0.14/statuses/S0025.json +153 -241
  230. data/schemas/tlc/1.0.14/statuses/S0026.json +29 -48
  231. data/schemas/tlc/1.0.14/statuses/S0027.json +29 -48
  232. data/schemas/tlc/1.0.14/statuses/S0028.json +29 -48
  233. data/schemas/tlc/1.0.14/statuses/S0029.json +29 -48
  234. data/schemas/tlc/1.0.14/statuses/S0091.json +47 -69
  235. data/schemas/tlc/1.0.14/statuses/S0092.json +47 -69
  236. data/schemas/tlc/1.0.14/statuses/S0095.json +29 -48
  237. data/schemas/tlc/1.0.14/statuses/S0096.json +110 -180
  238. data/schemas/tlc/1.0.14/statuses/S0201.json +44 -78
  239. data/schemas/tlc/1.0.14/statuses/S0202.json +44 -78
  240. data/schemas/tlc/1.0.14/statuses/S0203.json +44 -78
  241. data/schemas/tlc/1.0.14/statuses/S0204.json +178 -284
  242. data/schemas/tlc/1.0.14/statuses/S0205.json +44 -72
  243. data/schemas/tlc/1.0.14/statuses/S0206.json +44 -72
  244. data/schemas/tlc/1.0.14/statuses/S0207.json +44 -72
  245. data/schemas/tlc/1.0.14/statuses/S0208.json +189 -241
  246. data/schemas/tlc/1.0.14/statuses/statuses.json +1 -0
  247. data/schemas/tlc/1.0.15/alarms/A0001.json +1 -0
  248. data/schemas/tlc/1.0.15/alarms/A0002.json +1 -0
  249. data/schemas/tlc/1.0.15/alarms/A0003.json +1 -0
  250. data/schemas/tlc/1.0.15/alarms/A0004.json +1 -0
  251. data/schemas/tlc/1.0.15/alarms/A0005.json +1 -0
  252. data/schemas/tlc/1.0.15/alarms/A0006.json +1 -0
  253. data/schemas/tlc/1.0.15/alarms/A0007.json +1 -0
  254. data/schemas/tlc/1.0.15/alarms/A0008.json +15 -46
  255. data/schemas/tlc/1.0.15/alarms/A0009.json +1 -0
  256. data/schemas/tlc/1.0.15/alarms/A0010.json +1 -0
  257. data/schemas/tlc/1.0.15/alarms/A0101.json +1 -0
  258. data/schemas/tlc/1.0.15/alarms/A0201.json +20 -45
  259. data/schemas/tlc/1.0.15/alarms/A0202.json +20 -45
  260. data/schemas/tlc/1.0.15/alarms/A0301.json +70 -110
  261. data/schemas/tlc/1.0.15/alarms/A0302.json +93 -136
  262. data/schemas/tlc/1.0.15/alarms/alarms.json +1 -0
  263. data/schemas/tlc/1.0.15/commands/M0001.json +72 -124
  264. data/schemas/tlc/1.0.15/commands/M0002.json +49 -92
  265. data/schemas/tlc/1.0.15/commands/M0003.json +49 -92
  266. data/schemas/tlc/1.0.15/commands/M0004.json +32 -66
  267. data/schemas/tlc/1.0.15/commands/M0005.json +49 -92
  268. data/schemas/tlc/1.0.15/commands/M0006.json +49 -92
  269. data/schemas/tlc/1.0.15/commands/M0007.json +32 -66
  270. data/schemas/tlc/1.0.15/commands/M0008.json +49 -92
  271. data/schemas/tlc/1.0.15/commands/M0010.json +32 -66
  272. data/schemas/tlc/1.0.15/commands/M0011.json +32 -66
  273. data/schemas/tlc/1.0.15/commands/M0012.json +32 -60
  274. data/schemas/tlc/1.0.15/commands/M0013.json +32 -60
  275. data/schemas/tlc/1.0.15/commands/M0014.json +49 -86
  276. data/schemas/tlc/1.0.15/commands/M0015.json +49 -92
  277. data/schemas/tlc/1.0.15/commands/M0016.json +32 -60
  278. data/schemas/tlc/1.0.15/commands/M0017.json +32 -60
  279. data/schemas/tlc/1.0.15/commands/M0018.json +49 -92
  280. data/schemas/tlc/1.0.15/commands/M0019.json +67 -119
  281. data/schemas/tlc/1.0.15/commands/M0020.json +67 -119
  282. data/schemas/tlc/1.0.15/commands/M0021.json +32 -60
  283. data/schemas/tlc/1.0.15/commands/M0103.json +52 -83
  284. data/schemas/tlc/1.0.15/commands/M0104.json +121 -200
  285. data/schemas/tlc/1.0.15/commands/command_requests.json +1 -0
  286. data/schemas/tlc/1.0.15/commands/command_responses.json +1 -0
  287. data/schemas/tlc/1.0.15/commands/commands.json +1 -0
  288. data/schemas/tlc/1.0.15/rsmp.json +1 -0
  289. data/schemas/tlc/1.0.15/statuses/S0001.json +78 -124
  290. data/schemas/tlc/1.0.15/statuses/S0002.json +29 -48
  291. data/schemas/tlc/1.0.15/statuses/S0003.json +44 -66
  292. data/schemas/tlc/1.0.15/statuses/S0004.json +44 -66
  293. data/schemas/tlc/1.0.15/statuses/S0005.json +29 -54
  294. data/schemas/tlc/1.0.15/statuses/S0006.json +44 -78
  295. data/schemas/tlc/1.0.15/statuses/S0007.json +44 -78
  296. data/schemas/tlc/1.0.15/statuses/S0008.json +44 -78
  297. data/schemas/tlc/1.0.15/statuses/S0009.json +44 -78
  298. data/schemas/tlc/1.0.15/statuses/S0010.json +44 -78
  299. data/schemas/tlc/1.0.15/statuses/S0011.json +44 -78
  300. data/schemas/tlc/1.0.15/statuses/S0012.json +44 -78
  301. data/schemas/tlc/1.0.15/statuses/S0013.json +44 -78
  302. data/schemas/tlc/1.0.15/statuses/S0014.json +29 -54
  303. data/schemas/tlc/1.0.15/statuses/S0015.json +29 -54
  304. data/schemas/tlc/1.0.15/statuses/S0016.json +29 -54
  305. data/schemas/tlc/1.0.15/statuses/S0017.json +29 -54
  306. data/schemas/tlc/1.0.15/statuses/S0018.json +29 -54
  307. data/schemas/tlc/1.0.15/statuses/S0019.json +29 -54
  308. data/schemas/tlc/1.0.15/statuses/S0020.json +44 -78
  309. data/schemas/tlc/1.0.15/statuses/S0021.json +30 -49
  310. data/schemas/tlc/1.0.15/statuses/S0022.json +29 -48
  311. data/schemas/tlc/1.0.15/statuses/S0023.json +30 -49
  312. data/schemas/tlc/1.0.15/statuses/S0024.json +30 -49
  313. data/schemas/tlc/1.0.15/statuses/S0025.json +153 -241
  314. data/schemas/tlc/1.0.15/statuses/S0026.json +29 -48
  315. data/schemas/tlc/1.0.15/statuses/S0027.json +29 -48
  316. data/schemas/tlc/1.0.15/statuses/S0028.json +29 -48
  317. data/schemas/tlc/1.0.15/statuses/S0029.json +29 -48
  318. data/schemas/tlc/1.0.15/statuses/S0030.json +29 -48
  319. data/schemas/tlc/1.0.15/statuses/S0031.json +29 -48
  320. data/schemas/tlc/1.0.15/statuses/S0091.json +47 -69
  321. data/schemas/tlc/1.0.15/statuses/S0092.json +47 -69
  322. data/schemas/tlc/1.0.15/statuses/S0095.json +29 -48
  323. data/schemas/tlc/1.0.15/statuses/S0096.json +110 -180
  324. data/schemas/tlc/1.0.15/statuses/S0097.json +44 -72
  325. data/schemas/tlc/1.0.15/statuses/S0098.json +61 -92
  326. data/schemas/tlc/1.0.15/statuses/S0201.json +44 -78
  327. data/schemas/tlc/1.0.15/statuses/S0202.json +44 -78
  328. data/schemas/tlc/1.0.15/statuses/S0203.json +44 -78
  329. data/schemas/tlc/1.0.15/statuses/S0204.json +178 -284
  330. data/schemas/tlc/1.0.15/statuses/S0205.json +44 -72
  331. data/schemas/tlc/1.0.15/statuses/S0206.json +44 -72
  332. data/schemas/tlc/1.0.15/statuses/S0207.json +44 -72
  333. data/schemas/tlc/1.0.15/statuses/S0208.json +189 -241
  334. data/schemas/tlc/1.0.15/statuses/statuses.json +1 -0
  335. data/schemas/tlc/1.0.7/alarms/A0001.json +1 -0
  336. data/schemas/tlc/1.0.7/alarms/A0002.json +1 -0
  337. data/schemas/tlc/1.0.7/alarms/A0003.json +1 -0
  338. data/schemas/tlc/1.0.7/alarms/A0004.json +1 -0
  339. data/schemas/tlc/1.0.7/alarms/A0005.json +1 -0
  340. data/schemas/tlc/1.0.7/alarms/A0006.json +1 -0
  341. data/schemas/tlc/1.0.7/alarms/A0007.json +1 -0
  342. data/schemas/tlc/1.0.7/alarms/A0008.json +15 -46
  343. data/schemas/tlc/1.0.7/alarms/A0009.json +1 -0
  344. data/schemas/tlc/1.0.7/alarms/A0101.json +1 -0
  345. data/schemas/tlc/1.0.7/alarms/A0201.json +20 -45
  346. data/schemas/tlc/1.0.7/alarms/A0202.json +20 -45
  347. data/schemas/tlc/1.0.7/alarms/A0301.json +70 -110
  348. data/schemas/tlc/1.0.7/alarms/A0302.json +93 -136
  349. data/schemas/tlc/1.0.7/alarms/alarms.json +1 -0
  350. data/schemas/tlc/1.0.7/commands/M0001.json +72 -124
  351. data/schemas/tlc/1.0.7/commands/M0002.json +49 -92
  352. data/schemas/tlc/1.0.7/commands/M0003.json +49 -92
  353. data/schemas/tlc/1.0.7/commands/M0004.json +32 -66
  354. data/schemas/tlc/1.0.7/commands/M0005.json +49 -92
  355. data/schemas/tlc/1.0.7/commands/M0006.json +49 -92
  356. data/schemas/tlc/1.0.7/commands/M0007.json +32 -66
  357. data/schemas/tlc/1.0.7/commands/M0008.json +49 -92
  358. data/schemas/tlc/1.0.7/commands/M0010.json +32 -66
  359. data/schemas/tlc/1.0.7/commands/M0011.json +32 -66
  360. data/schemas/tlc/1.0.7/commands/M0019.json +67 -119
  361. data/schemas/tlc/1.0.7/commands/M0103.json +52 -83
  362. data/schemas/tlc/1.0.7/commands/M0104.json +121 -200
  363. data/schemas/tlc/1.0.7/commands/command_requests.json +1 -0
  364. data/schemas/tlc/1.0.7/commands/command_responses.json +1 -0
  365. data/schemas/tlc/1.0.7/commands/commands.json +1 -0
  366. data/schemas/tlc/1.0.7/rsmp.json +1 -0
  367. data/schemas/tlc/1.0.7/statuses/S0001.json +78 -124
  368. data/schemas/tlc/1.0.7/statuses/S0002.json +29 -48
  369. data/schemas/tlc/1.0.7/statuses/S0003.json +44 -66
  370. data/schemas/tlc/1.0.7/statuses/S0004.json +44 -66
  371. data/schemas/tlc/1.0.7/statuses/S0005.json +29 -54
  372. data/schemas/tlc/1.0.7/statuses/S0006.json +44 -78
  373. data/schemas/tlc/1.0.7/statuses/S0007.json +44 -78
  374. data/schemas/tlc/1.0.7/statuses/S0008.json +44 -78
  375. data/schemas/tlc/1.0.7/statuses/S0009.json +44 -78
  376. data/schemas/tlc/1.0.7/statuses/S0010.json +44 -78
  377. data/schemas/tlc/1.0.7/statuses/S0011.json +44 -78
  378. data/schemas/tlc/1.0.7/statuses/S0012.json +44 -78
  379. data/schemas/tlc/1.0.7/statuses/S0013.json +44 -78
  380. data/schemas/tlc/1.0.7/statuses/S0014.json +29 -54
  381. data/schemas/tlc/1.0.7/statuses/S0015.json +29 -54
  382. data/schemas/tlc/1.0.7/statuses/S0016.json +29 -54
  383. data/schemas/tlc/1.0.7/statuses/S0017.json +29 -54
  384. data/schemas/tlc/1.0.7/statuses/S0018.json +29 -54
  385. data/schemas/tlc/1.0.7/statuses/S0019.json +29 -54
  386. data/schemas/tlc/1.0.7/statuses/S0020.json +44 -78
  387. data/schemas/tlc/1.0.7/statuses/S0021.json +30 -49
  388. data/schemas/tlc/1.0.7/statuses/S0025.json +153 -241
  389. data/schemas/tlc/1.0.7/statuses/S0091.json +47 -69
  390. data/schemas/tlc/1.0.7/statuses/S0092.json +47 -69
  391. data/schemas/tlc/1.0.7/statuses/S0095.json +29 -48
  392. data/schemas/tlc/1.0.7/statuses/S0096.json +110 -180
  393. data/schemas/tlc/1.0.7/statuses/S0201.json +44 -78
  394. data/schemas/tlc/1.0.7/statuses/S0202.json +44 -78
  395. data/schemas/tlc/1.0.7/statuses/S0203.json +44 -78
  396. data/schemas/tlc/1.0.7/statuses/S0204.json +178 -284
  397. data/schemas/tlc/1.0.7/statuses/statuses.json +1 -0
  398. data/schemas/tlc/1.0.8/alarms/A0001.json +1 -0
  399. data/schemas/tlc/1.0.8/alarms/A0002.json +1 -0
  400. data/schemas/tlc/1.0.8/alarms/A0003.json +1 -0
  401. data/schemas/tlc/1.0.8/alarms/A0004.json +1 -0
  402. data/schemas/tlc/1.0.8/alarms/A0005.json +1 -0
  403. data/schemas/tlc/1.0.8/alarms/A0006.json +1 -0
  404. data/schemas/tlc/1.0.8/alarms/A0007.json +1 -0
  405. data/schemas/tlc/1.0.8/alarms/A0008.json +15 -46
  406. data/schemas/tlc/1.0.8/alarms/A0009.json +1 -0
  407. data/schemas/tlc/1.0.8/alarms/A0101.json +1 -0
  408. data/schemas/tlc/1.0.8/alarms/A0201.json +20 -45
  409. data/schemas/tlc/1.0.8/alarms/A0202.json +20 -45
  410. data/schemas/tlc/1.0.8/alarms/A0301.json +70 -110
  411. data/schemas/tlc/1.0.8/alarms/A0302.json +93 -136
  412. data/schemas/tlc/1.0.8/alarms/alarms.json +1 -0
  413. data/schemas/tlc/1.0.8/commands/M0001.json +72 -124
  414. data/schemas/tlc/1.0.8/commands/M0002.json +49 -92
  415. data/schemas/tlc/1.0.8/commands/M0003.json +49 -92
  416. data/schemas/tlc/1.0.8/commands/M0004.json +32 -66
  417. data/schemas/tlc/1.0.8/commands/M0005.json +49 -92
  418. data/schemas/tlc/1.0.8/commands/M0006.json +49 -92
  419. data/schemas/tlc/1.0.8/commands/M0007.json +32 -66
  420. data/schemas/tlc/1.0.8/commands/M0008.json +49 -92
  421. data/schemas/tlc/1.0.8/commands/M0010.json +32 -66
  422. data/schemas/tlc/1.0.8/commands/M0011.json +32 -66
  423. data/schemas/tlc/1.0.8/commands/M0012.json +32 -60
  424. data/schemas/tlc/1.0.8/commands/M0013.json +32 -60
  425. data/schemas/tlc/1.0.8/commands/M0019.json +67 -119
  426. data/schemas/tlc/1.0.8/commands/M0103.json +52 -83
  427. data/schemas/tlc/1.0.8/commands/M0104.json +121 -200
  428. data/schemas/tlc/1.0.8/commands/command_requests.json +1 -0
  429. data/schemas/tlc/1.0.8/commands/command_responses.json +1 -0
  430. data/schemas/tlc/1.0.8/commands/commands.json +1 -0
  431. data/schemas/tlc/1.0.8/rsmp.json +1 -0
  432. data/schemas/tlc/1.0.8/statuses/S0001.json +78 -124
  433. data/schemas/tlc/1.0.8/statuses/S0002.json +29 -48
  434. data/schemas/tlc/1.0.8/statuses/S0003.json +44 -66
  435. data/schemas/tlc/1.0.8/statuses/S0004.json +44 -66
  436. data/schemas/tlc/1.0.8/statuses/S0005.json +29 -54
  437. data/schemas/tlc/1.0.8/statuses/S0006.json +44 -78
  438. data/schemas/tlc/1.0.8/statuses/S0007.json +44 -78
  439. data/schemas/tlc/1.0.8/statuses/S0008.json +44 -78
  440. data/schemas/tlc/1.0.8/statuses/S0009.json +44 -78
  441. data/schemas/tlc/1.0.8/statuses/S0010.json +44 -78
  442. data/schemas/tlc/1.0.8/statuses/S0011.json +44 -78
  443. data/schemas/tlc/1.0.8/statuses/S0012.json +44 -78
  444. data/schemas/tlc/1.0.8/statuses/S0013.json +44 -78
  445. data/schemas/tlc/1.0.8/statuses/S0014.json +29 -54
  446. data/schemas/tlc/1.0.8/statuses/S0015.json +29 -54
  447. data/schemas/tlc/1.0.8/statuses/S0016.json +29 -54
  448. data/schemas/tlc/1.0.8/statuses/S0017.json +29 -54
  449. data/schemas/tlc/1.0.8/statuses/S0018.json +29 -54
  450. data/schemas/tlc/1.0.8/statuses/S0019.json +29 -54
  451. data/schemas/tlc/1.0.8/statuses/S0020.json +44 -78
  452. data/schemas/tlc/1.0.8/statuses/S0021.json +30 -49
  453. data/schemas/tlc/1.0.8/statuses/S0091.json +47 -69
  454. data/schemas/tlc/1.0.8/statuses/S0092.json +47 -69
  455. data/schemas/tlc/1.0.8/statuses/S0095.json +29 -48
  456. data/schemas/tlc/1.0.8/statuses/S0096.json +110 -180
  457. data/schemas/tlc/1.0.8/statuses/S0201.json +44 -78
  458. data/schemas/tlc/1.0.8/statuses/S0202.json +44 -78
  459. data/schemas/tlc/1.0.8/statuses/S0203.json +44 -78
  460. data/schemas/tlc/1.0.8/statuses/S0204.json +178 -284
  461. data/schemas/tlc/1.0.8/statuses/statuses.json +1 -0
  462. data/schemas/tlc/1.0.9/alarms/A0001.json +1 -0
  463. data/schemas/tlc/1.0.9/alarms/A0002.json +1 -0
  464. data/schemas/tlc/1.0.9/alarms/A0003.json +1 -0
  465. data/schemas/tlc/1.0.9/alarms/A0004.json +1 -0
  466. data/schemas/tlc/1.0.9/alarms/A0005.json +1 -0
  467. data/schemas/tlc/1.0.9/alarms/A0006.json +1 -0
  468. data/schemas/tlc/1.0.9/alarms/A0007.json +1 -0
  469. data/schemas/tlc/1.0.9/alarms/A0008.json +15 -46
  470. data/schemas/tlc/1.0.9/alarms/A0009.json +1 -0
  471. data/schemas/tlc/1.0.9/alarms/A0101.json +1 -0
  472. data/schemas/tlc/1.0.9/alarms/A0201.json +20 -45
  473. data/schemas/tlc/1.0.9/alarms/A0202.json +20 -45
  474. data/schemas/tlc/1.0.9/alarms/A0301.json +70 -110
  475. data/schemas/tlc/1.0.9/alarms/A0302.json +93 -136
  476. data/schemas/tlc/1.0.9/alarms/alarms.json +1 -0
  477. data/schemas/tlc/1.0.9/commands/M0001.json +72 -124
  478. data/schemas/tlc/1.0.9/commands/M0002.json +49 -92
  479. data/schemas/tlc/1.0.9/commands/M0003.json +49 -92
  480. data/schemas/tlc/1.0.9/commands/M0004.json +32 -66
  481. data/schemas/tlc/1.0.9/commands/M0005.json +49 -92
  482. data/schemas/tlc/1.0.9/commands/M0006.json +49 -92
  483. data/schemas/tlc/1.0.9/commands/M0007.json +32 -66
  484. data/schemas/tlc/1.0.9/commands/M0008.json +49 -92
  485. data/schemas/tlc/1.0.9/commands/M0010.json +32 -66
  486. data/schemas/tlc/1.0.9/commands/M0011.json +32 -66
  487. data/schemas/tlc/1.0.9/commands/M0012.json +32 -60
  488. data/schemas/tlc/1.0.9/commands/M0013.json +32 -60
  489. data/schemas/tlc/1.0.9/commands/M0019.json +67 -119
  490. data/schemas/tlc/1.0.9/commands/M0103.json +52 -83
  491. data/schemas/tlc/1.0.9/commands/M0104.json +121 -200
  492. data/schemas/tlc/1.0.9/commands/command_requests.json +1 -0
  493. data/schemas/tlc/1.0.9/commands/command_responses.json +1 -0
  494. data/schemas/tlc/1.0.9/commands/commands.json +1 -0
  495. data/schemas/tlc/1.0.9/rsmp.json +1 -0
  496. data/schemas/tlc/1.0.9/statuses/S0001.json +78 -124
  497. data/schemas/tlc/1.0.9/statuses/S0002.json +29 -48
  498. data/schemas/tlc/1.0.9/statuses/S0003.json +44 -66
  499. data/schemas/tlc/1.0.9/statuses/S0004.json +44 -66
  500. data/schemas/tlc/1.0.9/statuses/S0005.json +29 -54
  501. data/schemas/tlc/1.0.9/statuses/S0006.json +44 -78
  502. data/schemas/tlc/1.0.9/statuses/S0007.json +44 -78
  503. data/schemas/tlc/1.0.9/statuses/S0008.json +44 -78
  504. data/schemas/tlc/1.0.9/statuses/S0009.json +44 -78
  505. data/schemas/tlc/1.0.9/statuses/S0010.json +44 -78
  506. data/schemas/tlc/1.0.9/statuses/S0011.json +44 -78
  507. data/schemas/tlc/1.0.9/statuses/S0012.json +44 -78
  508. data/schemas/tlc/1.0.9/statuses/S0013.json +44 -78
  509. data/schemas/tlc/1.0.9/statuses/S0014.json +29 -54
  510. data/schemas/tlc/1.0.9/statuses/S0015.json +29 -54
  511. data/schemas/tlc/1.0.9/statuses/S0016.json +29 -54
  512. data/schemas/tlc/1.0.9/statuses/S0017.json +29 -54
  513. data/schemas/tlc/1.0.9/statuses/S0018.json +29 -54
  514. data/schemas/tlc/1.0.9/statuses/S0019.json +29 -54
  515. data/schemas/tlc/1.0.9/statuses/S0020.json +44 -78
  516. data/schemas/tlc/1.0.9/statuses/S0021.json +30 -49
  517. data/schemas/tlc/1.0.9/statuses/S0091.json +47 -69
  518. data/schemas/tlc/1.0.9/statuses/S0092.json +47 -69
  519. data/schemas/tlc/1.0.9/statuses/S0095.json +29 -48
  520. data/schemas/tlc/1.0.9/statuses/S0096.json +110 -180
  521. data/schemas/tlc/1.0.9/statuses/S0201.json +44 -78
  522. data/schemas/tlc/1.0.9/statuses/S0202.json +44 -78
  523. data/schemas/tlc/1.0.9/statuses/S0203.json +44 -78
  524. data/schemas/tlc/1.0.9/statuses/S0204.json +178 -284
  525. data/schemas/tlc/1.0.9/statuses/statuses.json +1 -0
  526. data/schemas/tlc/1.1.0/alarms/A0001.json +1 -0
  527. data/schemas/tlc/1.1.0/alarms/A0002.json +1 -0
  528. data/schemas/tlc/1.1.0/alarms/A0003.json +1 -0
  529. data/schemas/tlc/1.1.0/alarms/A0004.json +1 -0
  530. data/schemas/tlc/1.1.0/alarms/A0005.json +1 -0
  531. data/schemas/tlc/1.1.0/alarms/A0006.json +1 -0
  532. data/schemas/tlc/1.1.0/alarms/A0007.json +19 -44
  533. data/schemas/tlc/1.1.0/alarms/A0008.json +15 -46
  534. data/schemas/tlc/1.1.0/alarms/A0009.json +1 -0
  535. data/schemas/tlc/1.1.0/alarms/A0010.json +1 -0
  536. data/schemas/tlc/1.1.0/alarms/A0101.json +1 -0
  537. data/schemas/tlc/1.1.0/alarms/A0201.json +20 -45
  538. data/schemas/tlc/1.1.0/alarms/A0202.json +20 -45
  539. data/schemas/tlc/1.1.0/alarms/A0301.json +70 -110
  540. data/schemas/tlc/1.1.0/alarms/A0302.json +93 -136
  541. data/schemas/tlc/1.1.0/alarms/A0303.json +70 -110
  542. data/schemas/tlc/1.1.0/alarms/A0304.json +93 -136
  543. data/schemas/tlc/1.1.0/alarms/alarms.json +1 -0
  544. data/schemas/tlc/1.1.0/commands/M0001.json +72 -118
  545. data/schemas/tlc/1.1.0/commands/M0002.json +49 -92
  546. data/schemas/tlc/1.1.0/commands/M0003.json +49 -92
  547. data/schemas/tlc/1.1.0/commands/M0004.json +32 -66
  548. data/schemas/tlc/1.1.0/commands/M0005.json +49 -92
  549. data/schemas/tlc/1.1.0/commands/M0006.json +49 -92
  550. data/schemas/tlc/1.1.0/commands/M0007.json +32 -66
  551. data/schemas/tlc/1.1.0/commands/M0008.json +49 -92
  552. data/schemas/tlc/1.1.0/commands/M0010.json +32 -66
  553. data/schemas/tlc/1.1.0/commands/M0011.json +32 -66
  554. data/schemas/tlc/1.1.0/commands/M0012.json +32 -60
  555. data/schemas/tlc/1.1.0/commands/M0013.json +32 -60
  556. data/schemas/tlc/1.1.0/commands/M0014.json +49 -86
  557. data/schemas/tlc/1.1.0/commands/M0015.json +49 -92
  558. data/schemas/tlc/1.1.0/commands/M0016.json +32 -60
  559. data/schemas/tlc/1.1.0/commands/M0017.json +32 -60
  560. data/schemas/tlc/1.1.0/commands/M0018.json +49 -92
  561. data/schemas/tlc/1.1.0/commands/M0019.json +67 -119
  562. data/schemas/tlc/1.1.0/commands/M0020.json +67 -119
  563. data/schemas/tlc/1.1.0/commands/M0021.json +32 -60
  564. data/schemas/tlc/1.1.0/commands/M0022.json +227 -333
  565. data/schemas/tlc/1.1.0/commands/M0023.json +32 -66
  566. data/schemas/tlc/1.1.0/commands/M0103.json +52 -83
  567. data/schemas/tlc/1.1.0/commands/M0104.json +121 -200
  568. data/schemas/tlc/1.1.0/commands/command_requests.json +1 -0
  569. data/schemas/tlc/1.1.0/commands/command_responses.json +1 -0
  570. data/schemas/tlc/1.1.0/commands/commands.json +1 -0
  571. data/schemas/tlc/1.1.0/rsmp.json +1 -0
  572. data/schemas/tlc/1.1.0/statuses/S0001.json +78 -124
  573. data/schemas/tlc/1.1.0/statuses/S0002.json +29 -48
  574. data/schemas/tlc/1.1.0/statuses/S0003.json +44 -66
  575. data/schemas/tlc/1.1.0/statuses/S0004.json +44 -66
  576. data/schemas/tlc/1.1.0/statuses/S0005.json +29 -54
  577. data/schemas/tlc/1.1.0/statuses/S0006.json +44 -78
  578. data/schemas/tlc/1.1.0/statuses/S0007.json +62 -105
  579. data/schemas/tlc/1.1.0/statuses/S0008.json +62 -105
  580. data/schemas/tlc/1.1.0/statuses/S0009.json +62 -105
  581. data/schemas/tlc/1.1.0/statuses/S0010.json +62 -105
  582. data/schemas/tlc/1.1.0/statuses/S0011.json +62 -105
  583. data/schemas/tlc/1.1.0/statuses/S0012.json +62 -105
  584. data/schemas/tlc/1.1.0/statuses/S0013.json +44 -78
  585. data/schemas/tlc/1.1.0/statuses/S0014.json +52 -80
  586. data/schemas/tlc/1.1.0/statuses/S0015.json +52 -80
  587. data/schemas/tlc/1.1.0/statuses/S0016.json +29 -54
  588. data/schemas/tlc/1.1.0/statuses/S0017.json +29 -54
  589. data/schemas/tlc/1.1.0/statuses/S0018.json +29 -54
  590. data/schemas/tlc/1.1.0/statuses/S0019.json +29 -54
  591. data/schemas/tlc/1.1.0/statuses/S0020.json +44 -78
  592. data/schemas/tlc/1.1.0/statuses/S0021.json +30 -49
  593. data/schemas/tlc/1.1.0/statuses/S0022.json +29 -48
  594. data/schemas/tlc/1.1.0/statuses/S0023.json +30 -49
  595. data/schemas/tlc/1.1.0/statuses/S0024.json +30 -49
  596. data/schemas/tlc/1.1.0/statuses/S0025.json +153 -241
  597. data/schemas/tlc/1.1.0/statuses/S0026.json +29 -48
  598. data/schemas/tlc/1.1.0/statuses/S0027.json +29 -48
  599. data/schemas/tlc/1.1.0/statuses/S0028.json +29 -48
  600. data/schemas/tlc/1.1.0/statuses/S0029.json +29 -48
  601. data/schemas/tlc/1.1.0/statuses/S0030.json +29 -48
  602. data/schemas/tlc/1.1.0/statuses/S0031.json +29 -48
  603. data/schemas/tlc/1.1.0/statuses/S0032.json +61 -104
  604. data/schemas/tlc/1.1.0/statuses/S0033.json +67 -104
  605. data/schemas/tlc/1.1.0/statuses/S0034.json +29 -54
  606. data/schemas/tlc/1.1.0/statuses/S0091.json +33 -58
  607. data/schemas/tlc/1.1.0/statuses/S0092.json +33 -58
  608. data/schemas/tlc/1.1.0/statuses/S0095.json +29 -48
  609. data/schemas/tlc/1.1.0/statuses/S0096.json +110 -180
  610. data/schemas/tlc/1.1.0/statuses/S0097.json +44 -72
  611. data/schemas/tlc/1.1.0/statuses/S0098.json +61 -92
  612. data/schemas/tlc/1.1.0/statuses/S0201.json +44 -78
  613. data/schemas/tlc/1.1.0/statuses/S0202.json +44 -78
  614. data/schemas/tlc/1.1.0/statuses/S0203.json +44 -78
  615. data/schemas/tlc/1.1.0/statuses/S0204.json +178 -284
  616. data/schemas/tlc/1.1.0/statuses/S0205.json +44 -78
  617. data/schemas/tlc/1.1.0/statuses/S0206.json +44 -78
  618. data/schemas/tlc/1.1.0/statuses/S0207.json +44 -78
  619. data/schemas/tlc/1.1.0/statuses/S0208.json +178 -284
  620. data/schemas/tlc/1.1.0/statuses/statuses.json +1 -0
  621. data/schemas/tlc/1.2.0/alarms/A0001.json +1 -0
  622. data/schemas/tlc/1.2.0/alarms/A0002.json +1 -0
  623. data/schemas/tlc/1.2.0/alarms/A0003.json +1 -0
  624. data/schemas/tlc/1.2.0/alarms/A0004.json +1 -0
  625. data/schemas/tlc/1.2.0/alarms/A0005.json +1 -0
  626. data/schemas/tlc/1.2.0/alarms/A0006.json +1 -0
  627. data/schemas/tlc/1.2.0/alarms/A0007.json +19 -44
  628. data/schemas/tlc/1.2.0/alarms/A0008.json +15 -46
  629. data/schemas/tlc/1.2.0/alarms/A0009.json +1 -0
  630. data/schemas/tlc/1.2.0/alarms/A0010.json +1 -0
  631. data/schemas/tlc/1.2.0/alarms/A0101.json +1 -0
  632. data/schemas/tlc/1.2.0/alarms/A0201.json +20 -45
  633. data/schemas/tlc/1.2.0/alarms/A0202.json +20 -45
  634. data/schemas/tlc/1.2.0/alarms/A0301.json +70 -110
  635. data/schemas/tlc/1.2.0/alarms/A0302.json +93 -136
  636. data/schemas/tlc/1.2.0/alarms/A0303.json +70 -110
  637. data/schemas/tlc/1.2.0/alarms/A0304.json +93 -136
  638. data/schemas/tlc/1.2.0/alarms/alarms.json +1 -0
  639. data/schemas/tlc/1.2.0/commands/M0001.json +72 -118
  640. data/schemas/tlc/1.2.0/commands/M0002.json +49 -92
  641. data/schemas/tlc/1.2.0/commands/M0003.json +49 -92
  642. data/schemas/tlc/1.2.0/commands/M0004.json +32 -66
  643. data/schemas/tlc/1.2.0/commands/M0005.json +49 -92
  644. data/schemas/tlc/1.2.0/commands/M0006.json +49 -92
  645. data/schemas/tlc/1.2.0/commands/M0007.json +32 -66
  646. data/schemas/tlc/1.2.0/commands/M0008.json +49 -92
  647. data/schemas/tlc/1.2.0/commands/M0010.json +32 -66
  648. data/schemas/tlc/1.2.0/commands/M0011.json +32 -66
  649. data/schemas/tlc/1.2.0/commands/M0012.json +32 -60
  650. data/schemas/tlc/1.2.0/commands/M0013.json +32 -60
  651. data/schemas/tlc/1.2.0/commands/M0014.json +49 -86
  652. data/schemas/tlc/1.2.0/commands/M0015.json +49 -92
  653. data/schemas/tlc/1.2.0/commands/M0016.json +32 -60
  654. data/schemas/tlc/1.2.0/commands/M0017.json +32 -60
  655. data/schemas/tlc/1.2.0/commands/M0018.json +49 -92
  656. data/schemas/tlc/1.2.0/commands/M0019.json +67 -119
  657. data/schemas/tlc/1.2.0/commands/M0020.json +67 -119
  658. data/schemas/tlc/1.2.0/commands/M0021.json +32 -60
  659. data/schemas/tlc/1.2.0/commands/M0022.json +227 -333
  660. data/schemas/tlc/1.2.0/commands/M0023.json +32 -66
  661. data/schemas/tlc/1.2.0/commands/M0103.json +52 -83
  662. data/schemas/tlc/1.2.0/commands/M0104.json +121 -200
  663. data/schemas/tlc/1.2.0/commands/command_requests.json +1 -0
  664. data/schemas/tlc/1.2.0/commands/command_responses.json +1 -0
  665. data/schemas/tlc/1.2.0/commands/commands.json +1 -0
  666. data/schemas/tlc/1.2.0/rsmp.json +1 -0
  667. data/schemas/tlc/1.2.0/statuses/S0001.json +78 -124
  668. data/schemas/tlc/1.2.0/statuses/S0002.json +29 -48
  669. data/schemas/tlc/1.2.0/statuses/S0003.json +29 -48
  670. data/schemas/tlc/1.2.0/statuses/S0004.json +29 -48
  671. data/schemas/tlc/1.2.0/statuses/S0005.json +59 -99
  672. data/schemas/tlc/1.2.0/statuses/S0006.json +44 -78
  673. data/schemas/tlc/1.2.0/statuses/S0007.json +62 -105
  674. data/schemas/tlc/1.2.0/statuses/S0008.json +62 -105
  675. data/schemas/tlc/1.2.0/statuses/S0009.json +62 -105
  676. data/schemas/tlc/1.2.0/statuses/S0010.json +62 -105
  677. data/schemas/tlc/1.2.0/statuses/S0011.json +62 -105
  678. data/schemas/tlc/1.2.0/statuses/S0012.json +62 -105
  679. data/schemas/tlc/1.2.0/statuses/S0013.json +44 -78
  680. data/schemas/tlc/1.2.0/statuses/S0014.json +52 -80
  681. data/schemas/tlc/1.2.0/statuses/S0015.json +52 -80
  682. data/schemas/tlc/1.2.0/statuses/S0016.json +29 -54
  683. data/schemas/tlc/1.2.0/statuses/S0017.json +29 -54
  684. data/schemas/tlc/1.2.0/statuses/S0019.json +29 -54
  685. data/schemas/tlc/1.2.0/statuses/S0020.json +44 -78
  686. data/schemas/tlc/1.2.0/statuses/S0021.json +30 -49
  687. data/schemas/tlc/1.2.0/statuses/S0022.json +29 -48
  688. data/schemas/tlc/1.2.0/statuses/S0023.json +30 -49
  689. data/schemas/tlc/1.2.0/statuses/S0024.json +30 -49
  690. data/schemas/tlc/1.2.0/statuses/S0025.json +153 -241
  691. data/schemas/tlc/1.2.0/statuses/S0026.json +29 -48
  692. data/schemas/tlc/1.2.0/statuses/S0027.json +29 -48
  693. data/schemas/tlc/1.2.0/statuses/S0028.json +29 -48
  694. data/schemas/tlc/1.2.0/statuses/S0029.json +29 -48
  695. data/schemas/tlc/1.2.0/statuses/S0030.json +29 -48
  696. data/schemas/tlc/1.2.0/statuses/S0031.json +29 -48
  697. data/schemas/tlc/1.2.0/statuses/S0032.json +61 -104
  698. data/schemas/tlc/1.2.0/statuses/S0033.json +67 -104
  699. data/schemas/tlc/1.2.0/statuses/S0034.json +29 -54
  700. data/schemas/tlc/1.2.0/statuses/S0035.json +39 -64
  701. data/schemas/tlc/1.2.0/statuses/S0091.json +33 -58
  702. data/schemas/tlc/1.2.0/statuses/S0092.json +33 -58
  703. data/schemas/tlc/1.2.0/statuses/S0095.json +29 -48
  704. data/schemas/tlc/1.2.0/statuses/S0096.json +110 -180
  705. data/schemas/tlc/1.2.0/statuses/S0097.json +44 -72
  706. data/schemas/tlc/1.2.0/statuses/S0098.json +61 -92
  707. data/schemas/tlc/1.2.0/statuses/S0201.json +44 -78
  708. data/schemas/tlc/1.2.0/statuses/S0202.json +44 -78
  709. data/schemas/tlc/1.2.0/statuses/S0203.json +44 -78
  710. data/schemas/tlc/1.2.0/statuses/S0204.json +178 -284
  711. data/schemas/tlc/1.2.0/statuses/S0205.json +44 -78
  712. data/schemas/tlc/1.2.0/statuses/S0206.json +44 -78
  713. data/schemas/tlc/1.2.0/statuses/S0207.json +44 -78
  714. data/schemas/tlc/1.2.0/statuses/S0208.json +178 -284
  715. data/schemas/tlc/1.2.0/statuses/statuses.json +1 -0
  716. data/schemas/tlc/1.2.1/alarms/A0001.json +1 -0
  717. data/schemas/tlc/1.2.1/alarms/A0002.json +1 -0
  718. data/schemas/tlc/1.2.1/alarms/A0003.json +1 -0
  719. data/schemas/tlc/1.2.1/alarms/A0004.json +1 -0
  720. data/schemas/tlc/1.2.1/alarms/A0005.json +1 -0
  721. data/schemas/tlc/1.2.1/alarms/A0006.json +1 -0
  722. data/schemas/tlc/1.2.1/alarms/A0007.json +19 -44
  723. data/schemas/tlc/1.2.1/alarms/A0008.json +15 -46
  724. data/schemas/tlc/1.2.1/alarms/A0009.json +1 -0
  725. data/schemas/tlc/1.2.1/alarms/A0010.json +1 -0
  726. data/schemas/tlc/1.2.1/alarms/A0101.json +1 -0
  727. data/schemas/tlc/1.2.1/alarms/A0201.json +20 -45
  728. data/schemas/tlc/1.2.1/alarms/A0202.json +20 -45
  729. data/schemas/tlc/1.2.1/alarms/A0301.json +70 -110
  730. data/schemas/tlc/1.2.1/alarms/A0302.json +93 -136
  731. data/schemas/tlc/1.2.1/alarms/A0303.json +70 -110
  732. data/schemas/tlc/1.2.1/alarms/A0304.json +93 -136
  733. data/schemas/tlc/1.2.1/alarms/alarms.json +1 -0
  734. data/schemas/tlc/1.2.1/commands/M0001.json +72 -118
  735. data/schemas/tlc/1.2.1/commands/M0002.json +49 -92
  736. data/schemas/tlc/1.2.1/commands/M0003.json +49 -92
  737. data/schemas/tlc/1.2.1/commands/M0004.json +32 -66
  738. data/schemas/tlc/1.2.1/commands/M0005.json +49 -92
  739. data/schemas/tlc/1.2.1/commands/M0006.json +49 -92
  740. data/schemas/tlc/1.2.1/commands/M0007.json +32 -66
  741. data/schemas/tlc/1.2.1/commands/M0008.json +49 -92
  742. data/schemas/tlc/1.2.1/commands/M0010.json +32 -66
  743. data/schemas/tlc/1.2.1/commands/M0011.json +32 -66
  744. data/schemas/tlc/1.2.1/commands/M0012.json +32 -60
  745. data/schemas/tlc/1.2.1/commands/M0013.json +32 -60
  746. data/schemas/tlc/1.2.1/commands/M0014.json +49 -86
  747. data/schemas/tlc/1.2.1/commands/M0015.json +49 -92
  748. data/schemas/tlc/1.2.1/commands/M0016.json +32 -60
  749. data/schemas/tlc/1.2.1/commands/M0017.json +32 -60
  750. data/schemas/tlc/1.2.1/commands/M0018.json +49 -92
  751. data/schemas/tlc/1.2.1/commands/M0019.json +67 -119
  752. data/schemas/tlc/1.2.1/commands/M0020.json +67 -119
  753. data/schemas/tlc/1.2.1/commands/M0021.json +32 -60
  754. data/schemas/tlc/1.2.1/commands/M0022.json +227 -333
  755. data/schemas/tlc/1.2.1/commands/M0023.json +32 -66
  756. data/schemas/tlc/1.2.1/commands/M0103.json +52 -83
  757. data/schemas/tlc/1.2.1/commands/M0104.json +121 -200
  758. data/schemas/tlc/1.2.1/commands/command_requests.json +1 -0
  759. data/schemas/tlc/1.2.1/commands/command_responses.json +1 -0
  760. data/schemas/tlc/1.2.1/commands/commands.json +1 -0
  761. data/schemas/tlc/1.2.1/rsmp.json +1 -0
  762. data/schemas/tlc/1.2.1/statuses/S0001.json +78 -124
  763. data/schemas/tlc/1.2.1/statuses/S0002.json +29 -48
  764. data/schemas/tlc/1.2.1/statuses/S0003.json +29 -48
  765. data/schemas/tlc/1.2.1/statuses/S0004.json +29 -48
  766. data/schemas/tlc/1.2.1/statuses/S0005.json +59 -99
  767. data/schemas/tlc/1.2.1/statuses/S0006.json +44 -78
  768. data/schemas/tlc/1.2.1/statuses/S0007.json +62 -105
  769. data/schemas/tlc/1.2.1/statuses/S0008.json +62 -105
  770. data/schemas/tlc/1.2.1/statuses/S0009.json +62 -105
  771. data/schemas/tlc/1.2.1/statuses/S0010.json +60 -105
  772. data/schemas/tlc/1.2.1/statuses/S0011.json +62 -105
  773. data/schemas/tlc/1.2.1/statuses/S0012.json +62 -105
  774. data/schemas/tlc/1.2.1/statuses/S0013.json +44 -78
  775. data/schemas/tlc/1.2.1/statuses/S0014.json +52 -80
  776. data/schemas/tlc/1.2.1/statuses/S0015.json +52 -80
  777. data/schemas/tlc/1.2.1/statuses/S0016.json +29 -54
  778. data/schemas/tlc/1.2.1/statuses/S0017.json +29 -54
  779. data/schemas/tlc/1.2.1/statuses/S0019.json +29 -54
  780. data/schemas/tlc/1.2.1/statuses/S0020.json +44 -78
  781. data/schemas/tlc/1.2.1/statuses/S0021.json +30 -49
  782. data/schemas/tlc/1.2.1/statuses/S0022.json +29 -48
  783. data/schemas/tlc/1.2.1/statuses/S0023.json +30 -49
  784. data/schemas/tlc/1.2.1/statuses/S0024.json +30 -49
  785. data/schemas/tlc/1.2.1/statuses/S0025.json +153 -241
  786. data/schemas/tlc/1.2.1/statuses/S0026.json +29 -48
  787. data/schemas/tlc/1.2.1/statuses/S0027.json +29 -48
  788. data/schemas/tlc/1.2.1/statuses/S0028.json +29 -48
  789. data/schemas/tlc/1.2.1/statuses/S0029.json +29 -48
  790. data/schemas/tlc/1.2.1/statuses/S0030.json +29 -48
  791. data/schemas/tlc/1.2.1/statuses/S0031.json +29 -48
  792. data/schemas/tlc/1.2.1/statuses/S0032.json +61 -104
  793. data/schemas/tlc/1.2.1/statuses/S0033.json +67 -104
  794. data/schemas/tlc/1.2.1/statuses/S0034.json +29 -54
  795. data/schemas/tlc/1.2.1/statuses/S0035.json +39 -64
  796. data/schemas/tlc/1.2.1/statuses/S0091.json +33 -58
  797. data/schemas/tlc/1.2.1/statuses/S0092.json +33 -58
  798. data/schemas/tlc/1.2.1/statuses/S0095.json +29 -48
  799. data/schemas/tlc/1.2.1/statuses/S0096.json +110 -180
  800. data/schemas/tlc/1.2.1/statuses/S0097.json +44 -72
  801. data/schemas/tlc/1.2.1/statuses/S0098.json +61 -92
  802. data/schemas/tlc/1.2.1/statuses/S0201.json +44 -78
  803. data/schemas/tlc/1.2.1/statuses/S0202.json +44 -78
  804. data/schemas/tlc/1.2.1/statuses/S0203.json +44 -78
  805. data/schemas/tlc/1.2.1/statuses/S0204.json +178 -284
  806. data/schemas/tlc/1.2.1/statuses/S0205.json +44 -78
  807. data/schemas/tlc/1.2.1/statuses/S0206.json +44 -78
  808. data/schemas/tlc/1.2.1/statuses/S0207.json +44 -78
  809. data/schemas/tlc/1.2.1/statuses/S0208.json +178 -284
  810. data/schemas/tlc/1.2.1/statuses/statuses.json +1 -0
  811. data/schemas/tlc/defs/guards.json +24 -0
  812. metadata +21 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c39b6ab3cc486788feee182e2a9ba6332f01ba1597c5218fdc84f0f4f94fdb7e
4
- data.tar.gz: daa378692c4caa3fdb08364a6aa109932d8eb1a06ec8be358342ccf781415f56
3
+ metadata.gz: 86686f176a4c15c90f569c0d60dbeafb56a27c2fe0d06f379791f2314bf1884f
4
+ data.tar.gz: 5e33a0a3e94483f5fe496168b3de4c704e8ea566f32f217cce4db15829b654c6
5
5
  SHA512:
6
- metadata.gz: 2e7be3449e7693476a04de6308f7c74b02bd541e3d5cab3ba9fb9a1c8c58b3a48f554e3dafc84405ea41bdefdd9b2d7864a4d8fccc4c73887ead041fc5b0add4
7
- data.tar.gz: 541cb7f75d8169442c6c081f56f679e81e66916be07b0d6c77729d08f7bb3d3141db20f1993b2952f90e4815a6f67bf2ae463351d1c3cf23a09280d369f3e81a
6
+ metadata.gz: 0d579d39429c9b4025794282e3fa45958f05849971b80745c089ca0fb8f79fe35909a1d800e1a6b92ff9aa4976c862e548197cb574b484ff0db5d9d1ed3b4b36
7
+ data.tar.gz: cb0d7767006fd9aac1ad8d6092df01a33bc089a46eef9d05be21433a0de437034de18cb63a9960bec94c11319735ac7beaf1b16b1841b5ad1c0f71cfa77629b7
@@ -0,0 +1,22 @@
1
+ // For format details, see https://aka.ms/devcontainer.json. For config options, see the
2
+ // README at: https://github.com/devcontainers/templates/tree/main/src/ruby
3
+ {
4
+ "name": "Ruby",
5
+ // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
6
+ "image": "mcr.microsoft.com/devcontainers/ruby:1-3.4-bullseye",
7
+
8
+ // Features to add to the dev container. More info: https://containers.dev/features.
9
+ // "features": {},
10
+
11
+ // Use 'forwardPorts' to make a list of ports inside the container available locally.
12
+ // "forwardPorts": [],
13
+
14
+ // Use 'postCreateCommand' to run commands after the container is created.
15
+ "postCreateCommand": "bundle install"
16
+
17
+ // Configure tool-specific properties.
18
+ // "customizations": {},
19
+
20
+ // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
21
+ // "remoteUser": "root"
22
+ }
@@ -0,0 +1,196 @@
1
+ # RSMP Schema Ruby Gem
2
+
3
+ RSMP Schema is a Ruby gem that provides JSON Schema validation for RSMP (Road Side Message Protocol) messages. The schema covers both the core RSMP specification and SXL (Signal Exchange List) for Traffic Light Controllers.
4
+
5
+ Always reference these instructions first, and fall back to search or bash commands only when you encounter unexpected information that does not match the info here.
6
+
7
+ ## Environment Setup
8
+
9
+ Bootstrap, build, and test the repository using mise:
10
+
11
+ ```bash
12
+ # Install mise (if not already installed), follow instructions at https://mise.jdx.dev/
13
+ curl https://mise.run | sh
14
+
15
+ # Install the Ruby version specified in .tool-versions
16
+ mise install
17
+
18
+ # Install all dependencies.
19
+ # The bundler gem is included by default in the Ruby installation and does not have to be installed first.
20
+ bundle install
21
+ ```
22
+
23
+ ## Running Tests
24
+
25
+ The test suite includes comprehensive RSpec tests covering:
26
+ - Core RSMP message validation
27
+ - Traffic Light Controller SXL validation
28
+
29
+
30
+ Run the complete test suite:
31
+ ```bash
32
+ # Test command takes approximately 2 seconds
33
+ bundle exec rspec
34
+ ```
35
+
36
+ All tests should pass on a clean repository.
37
+
38
+ ## CLI Tool Usage
39
+
40
+ The gem provides a CLI tool for converting YAML SXL files to JSON Schema:
41
+
42
+ ```bash
43
+ # Show available commands
44
+ bundle exec exe/rsmp_schema --help
45
+
46
+ # Convert YAML SXL to JSON Schema
47
+ bundle exec exe/rsmp_schema convert -i <input.yaml> -o <output_directory>
48
+
49
+ # Example: Convert TLC SXL
50
+ bundle exec exe/rsmp_schema convert -i schemas/tlc/1.2.1/sxl.yaml -o tmp/sxl_1.2.1_schema
51
+ ```
52
+
53
+ ## Schema Regeneration
54
+
55
+ Regenerate all TLC JSON schemas from their YAML sources:
56
+
57
+ ```bash
58
+ # Regenerates all schemas in schemas/tlc/*/sxl.yaml
59
+ bundle exec rake regenerate
60
+ ```
61
+
62
+ **WARNING**: This destructively overwrites all JSON schema files in schemas/tlc/. Core schemas are not affected as they are hand-maintained.
63
+
64
+ This rake task and the 'convert' CLI command use the same Ruby code to convert YAML to JSON schema files.
65
+
66
+
67
+ ## Example code
68
+ The file examples/validate.rb shows how to use the gem to validate RSMP messages.
69
+
70
+ Before committing changes, in addition to checking that all RSpec tests pass, also check that the examples/validate.rb script works and outputs the expected result:
71
+
72
+ ```bash
73
+ # Test validation with corrected example script
74
+ bundle exec ruby examples/validate.rb
75
+ ```
76
+
77
+ Expected output: `ok` (indicates successful validation)
78
+
79
+ ## Repository Structure
80
+
81
+ Key directories and files:
82
+ - `lib/rsmp_schema/` - Main gem code
83
+ - `lib/rsmp_schema/cli.rb` - CLI tool implementation
84
+ - `lib/rsmp_schema/convert/` - YAML to JSON Schema conversion
85
+ - `exe/rsmp_schema` - Executable CLI wrapper
86
+ - `spec/` - RSpec test files
87
+ - `schemas/core/` - Hand-maintained core RSMP schemas
88
+ - `schemas/tlc/` - Generated Traffic Light Controller schemas
89
+ - `examples/validate.rb` - Example validation code
90
+ - `Rakefile` - Contains regenerate task
91
+ - `.github/workflows/rspec.yaml` - CI pipeline
92
+
93
+ ## Common File Locations
94
+
95
+ ### Schema Files
96
+ - Core schemas: `schemas/core/<version>/rsmp.json`
97
+ - TLC SXL schemas: `schemas/tlc/<version>/rsmp.json`
98
+ - TLC SXL YAML sources: `schemas/tlc/<version>/sxl.yaml`
99
+
100
+ ### Code Files
101
+ - Main entry: `lib/rsmp_schema.rb`
102
+ - CLI: `lib/rsmp_schema/cli.rb`
103
+
104
+ ### Test Files
105
+ - Core tests: `spec/core/`
106
+ - TLC tests: `spec/tlc/`
107
+ - Helper: `spec/schemer_helper.rb`
108
+
109
+ ## CI Pipeline Validation
110
+
111
+ The repository uses GitHub Actions with the following requirements:
112
+ - Runs on Ubuntu, macOS, and Windows
113
+ - Tests with different Ruby versions
114
+ - 5-minute timeout for all tests
115
+ - Must pass `bundle exec rspec -f d`
116
+
117
+ Before committing changes, ensure:
118
+ - Schemas are regenerated if any SXL YAML sources were modified
119
+ - All tests pass: `bundle exec rspec`
120
+ - Ruby syntax is valid for modified files
121
+
122
+ ## Validation Scenarios
123
+
124
+ After making changes, always test these scenarios:
125
+
126
+ 1. **Schema regeneration**: Run `bundle exec rake regenerate` and verify no unexpected changes.
127
+ 2. **Test suite**: Run `bundle exec rspec` and ensure all tests pass.
128
+ 3. **Example code**: Ensure the examples in examples/ work correctly.
129
+ 4. **CLI functionality**: Test the convert command with actual files.
130
+ 5. **No unrelated changes**: No unrelated changes or files should be included in the commit.
131
+
132
+ Example validation workflow:
133
+
134
+ ```bash
135
+ # Ensure we're in root of the repo folder
136
+ cd /path/to/repo
137
+
138
+ # Regenerate schema files if SXL YAML sources were modified
139
+ # And check that no unexpected changes were introduced
140
+ bundle exec rake regenerate
141
+ git status -- schemas/
142
+
143
+ # Run test suite
144
+ bundle exec rspec
145
+
146
+ # Check example code
147
+ bundle exec ruby examples/validate.rb
148
+
149
+ # Check CLI functionality
150
+ # And check that output contains expected files
151
+ bundle exec exe/rsmp_schema convert -i schemas/tlc/1.2.1/sxl.yaml -o tmp/sxl_1.2.1_schema
152
+ ls -la tmp/sxl_1.2.1_schema # Should show rsmp.json, alarms/, commands/, statuses/
153
+
154
+ # Check that no unrelated changes or files were introduced
155
+ git status
156
+ ```
157
+
158
+
159
+
160
+ ## Dependencies and Versions
161
+
162
+ See `rsmp_schema.gemspec` for current runtime and development dependencies.
163
+
164
+ Requires the Ruby version specified in .tool-versions.
165
+
166
+ ## Common Issues and Solutions
167
+
168
+ **Ruby version or environment issues**:
169
+ - Use mise for automatic Ruby management: `mise install`
170
+
171
+ **Permission errors during bundle install**:
172
+ - Use mise which handles permissions automatically
173
+
174
+ **Missing bundler command**:
175
+ - Run `mise install` first, bundler should be available automatically
176
+
177
+ **JSON Schema validation errors**:
178
+ - Check that schema paths use `schemas/` not `schema/` (common typo in examples)
179
+ - Ensure you're using `bundle exec ruby` for scripts that require gems
180
+
181
+ **Test failures**:
182
+ - Run `bundle exec rspec` not just `rspec`
183
+ - Ensure you've run `bundle install` first
184
+ - Check Ruby version compatibility (see .tool-versions)
185
+
186
+ ## Timing Expectations
187
+
188
+ - **NEVER CANCEL**: Bundle install takes 10-15 seconds normally - wait for completion
189
+ - **NEVER CANCEL**: Test suite takes 2 seconds - use 30+ second timeout
190
+ - **NEVER CANCEL**: Schema regeneration takes 0.75 seconds - very fast but allow buffer
191
+ - Initial gem setup may take up to 60 seconds total including bundler installation
192
+
193
+ Set timeouts generously:
194
+ - Bundle operations: 60+ seconds
195
+ - Test operations: 30+ seconds
196
+ - CLI operations: 30+ seconds
data/.gitignore CHANGED
@@ -1,6 +1,8 @@
1
1
  /.bundle/
2
+ /vendor/bundle/
2
3
  /pkg/
3
4
  /spec/reports/
4
5
  /tmp/
5
6
  /.DS_Store
6
7
  /.rspec_status
8
+ /vendor/bundle/
data/.tool-versions CHANGED
@@ -1 +1 @@
1
- ruby 3.3.2
1
+ ruby 3.4
data/Gemfile.lock CHANGED
@@ -1,15 +1,15 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rsmp_schema (0.8.8)
4
+ rsmp_schema (0.9.0)
5
5
  json_schemer (~> 2.3.0)
6
6
  thor (~> 1.3.1)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- bigdecimal (3.1.8)
12
- diff-lcs (1.5.1)
11
+ bigdecimal (3.2.3)
12
+ diff-lcs (1.6.2)
13
13
  hana (1.3.7)
14
14
  json_schemer (2.3.0)
15
15
  bigdecimal
@@ -17,26 +17,22 @@ GEM
17
17
  regexp_parser (~> 2.0)
18
18
  simpleidn (~> 0.2)
19
19
  rake (13.2.1)
20
- regexp_parser (2.8.2)
21
- rspec (3.13.0)
20
+ regexp_parser (2.11.3)
21
+ rspec (3.13.1)
22
22
  rspec-core (~> 3.13.0)
23
23
  rspec-expectations (~> 3.13.0)
24
24
  rspec-mocks (~> 3.13.0)
25
- rspec-core (3.13.0)
25
+ rspec-core (3.13.5)
26
26
  rspec-support (~> 3.13.0)
27
- rspec-expectations (3.13.0)
27
+ rspec-expectations (3.13.5)
28
28
  diff-lcs (>= 1.2.0, < 2.0)
29
29
  rspec-support (~> 3.13.0)
30
- rspec-mocks (3.13.1)
30
+ rspec-mocks (3.13.5)
31
31
  diff-lcs (>= 1.2.0, < 2.0)
32
32
  rspec-support (~> 3.13.0)
33
- rspec-support (3.13.1)
34
- simpleidn (0.2.1)
35
- unf (~> 0.1.4)
36
- thor (1.3.1)
37
- unf (0.1.4)
38
- unf_ext
39
- unf_ext (0.0.9.1)
33
+ rspec-support (3.13.6)
34
+ simpleidn (0.2.3)
35
+ thor (1.3.2)
40
36
 
41
37
  PLATFORMS
42
38
  ruby
@@ -48,4 +44,4 @@ DEPENDENCIES
48
44
  rspec-expectations (~> 3.13.0)
49
45
 
50
46
  BUNDLED WITH
51
- 2.5.11
47
+ 2.7.2
data/examples/validate.rb CHANGED
@@ -1,4 +1,4 @@
1
- require 'json_schemer'
1
+ require 'rsmp_schema'
2
2
 
3
3
  message = {
4
4
  "mType" => "rSMsg",
@@ -18,15 +18,13 @@ message = {
18
18
  ]
19
19
  }
20
20
 
21
- # try validating a message against our schema
22
- schema = Pathname.new('schema/tlc/1.2.1/rsmp.json')
23
- schemer = JSONSchemer.schema(schema)
24
- if schemer.valid? message
21
+ # load schemas
22
+ RSMP::Schema.setup
23
+
24
+ # validating a message against core and tlc schemas
25
+ result = RSMP::Schema.validate( message, core: "3.2.1", tlc: "1.2.1" )
26
+ if result == nil
25
27
  puts 'ok'
26
28
  else
27
- schemer.validate(message).each do |item|
28
- puts [item['data_pointer'],item['type'],item['details']].compact.join(' ')
29
- end
29
+ puts "failed: #{result.inspect}"
30
30
  end
31
-
32
-
@@ -61,7 +61,7 @@ module RSMP
61
61
  "items" => {
62
62
  "type" => "object",
63
63
  "required" => required,
64
- "additionalProperties": false
64
+ "unevaluatedProperties" => false # Modern alternative to additionalProperties
65
65
  }
66
66
  })
67
67
  out["items"]["properties"] = {}
@@ -71,16 +71,10 @@ module RSMP
71
71
  out
72
72
  end
73
73
 
74
- # with draft-07 and older, using a $ref mean all other properties are ignored.
75
- # to avoid this we need to use an allOf.
76
- # this is changed from draft-08, but unfortunately, there is still no Ruby validator for that
74
+ # JSON Schema 2020-12 allows combining $ref with other properties directly
77
75
  def self.wrap_refs out
78
- if out.keys.include? '$ref'
79
- ref = out.delete '$ref'
80
- { "allOf" => [out,{"$ref"=>ref}]}
81
- else
82
- out
83
- end
76
+ # No wrapping needed with modern JSON Schema
77
+ out
84
78
  end
85
79
 
86
80
  # convert a yaml item with list: true to json schema
@@ -138,37 +132,53 @@ module RSMP
138
132
  def self.build_item item, property_key: 'v'
139
133
  unless item['arguments']
140
134
  json = {
135
+ "$schema" => "https://json-schema.org/draft/2020-12/schema",
141
136
  "description" => item['description'],
142
137
  }
143
138
  return json
144
139
  end
145
140
 
146
- json = {
147
- "description" => item['description'],
148
- "allOf" => [
149
- {
150
- "properties" => { "n" => { "enum" => item['arguments'].keys.sort }},
151
- },
141
+ arguments = item['arguments']
142
+
143
+ # For statuses (property_key == 's'), generate a single top-level gate:
144
+ # if q is undefined/unknown -> no constraints; else -> per-n branches.
145
+ if property_key == 's'
146
+ branches = arguments.map do |key, argument|
152
147
  {
153
- "if" =>
154
- {
155
- "required" => ["q"],
156
- "properties" => { "q"=> { "enum" => ["undefined","unknown"] }},
157
- },
158
- "then" => {},
159
- "else" => {
160
- "allOf" => item['arguments'].map do |key,argument|
161
- {
162
- "if" => { "required" => ["n"], "properties" => { "n" => { "const" => key }}},
163
- "then" => { "properties" => { property_key => build_value(argument) }}
164
- }
165
- end
166
- }
148
+ "if" => { "properties" => { "n" => { "const" => key } } },
149
+ "then" => { "properties" => { property_key => build_value(argument) } }
167
150
  }
168
- ]
169
- }
151
+ end
152
+
153
+ return {
154
+ "$schema" => "https://json-schema.org/draft/2020-12/schema",
155
+ "description" => item['description'],
156
+ "properties" => {
157
+ "n" => { "enum" => arguments.keys.sort }
158
+ },
159
+ # reference shared guard (relative from statuses folder to tlc/defs)
160
+ "if" => { "$ref" => "../../defs/guards.json#/$defs/q_unknown_or_undefined" },
161
+ "then" => {},
162
+ "else" => { "allOf" => branches }
163
+ }
164
+ end
165
+
166
+ # Default behavior (alarms/commands): keep simple per-n if/then rules without q gating
167
+ rules = arguments.map do |key, argument|
168
+ {
169
+ "if" => { "properties" => { "n" => { "const" => key } } },
170
+ "then" => { "properties" => { property_key => build_value(argument) } }
171
+ }
172
+ end
170
173
 
171
- json
174
+ {
175
+ "$schema" => "https://json-schema.org/draft/2020-12/schema",
176
+ "description" => item['description'],
177
+ "properties" => {
178
+ "n" => { "enum" => arguments.keys.sort }
179
+ },
180
+ "allOf" => rules
181
+ }
172
182
  end
173
183
 
174
184
  # convert alarms to json schema
@@ -180,6 +190,7 @@ module RSMP
180
190
  }
181
191
  end
182
192
  json = {
193
+ "$schema" => "https://json-schema.org/draft/2020-12/schema",
183
194
  "properties" => {
184
195
  "aCId" => { "enum" => items.keys.sort },
185
196
  "rvs" => { "items" => { "allOf" => list } }
@@ -197,6 +208,19 @@ module RSMP
197
208
 
198
209
  # convert statuses to json schema
199
210
  def self.output_statuses out, items
211
+ # ensure shared guard is written (relative to version folder)
212
+ out['../defs/guards.json'] ||= output_json({
213
+ "$schema" => "https://json-schema.org/draft/2020-12/schema",
214
+ "$defs" => {
215
+ "q_unknown_or_undefined" => {
216
+ "allOf" => [
217
+ { "required" => ["q"] },
218
+ { "properties" => { "q" => { "enum" => ["undefined", "unknown"] } } }
219
+ ]
220
+ }
221
+ }
222
+ })
223
+
200
224
  list = [ { "properties" => { "sCI" => { "enum"=> items.keys.sort }}} ]
201
225
  items.keys.sort.each do |key|
202
226
  list << {
@@ -204,7 +228,10 @@ module RSMP
204
228
  "then" => { "$ref" => "#{key}.json" }
205
229
  }
206
230
  end
207
- json = { "properties" => { "sS" => { "items" => { "allOf" => list }}}}
231
+ json = {
232
+ "$schema" => "https://json-schema.org/draft/2020-12/schema",
233
+ "properties" => { "sS" => { "items" => { "allOf" => list }}}
234
+ }
208
235
  out['statuses/statuses.json'] = output_json json
209
236
  items.each_pair { |key,item| output_status out, key, item }
210
237
  end
@@ -224,13 +251,22 @@ module RSMP
224
251
  "then" => { "$ref" => "#{key}.json" }
225
252
  }
226
253
  end
227
- json = { "items" => { "allOf" => list }}
254
+ json = {
255
+ "$schema" => "https://json-schema.org/draft/2020-12/schema",
256
+ "items" => { "allOf" => list }
257
+ }
228
258
  out['commands/commands.json'] = output_json json
229
259
 
230
- json = { "properties" => { "arg" => { "$ref" => "commands.json" }}}
260
+ json = {
261
+ "$schema" => "https://json-schema.org/draft/2020-12/schema",
262
+ "properties" => { "arg" => { "$ref" => "commands.json" }}
263
+ }
231
264
  out['commands/command_requests.json'] = output_json json
232
265
 
233
- json = { "properties" => { "rvs" => { "$ref" => "commands.json" }}}
266
+ json = {
267
+ "$schema" => "https://json-schema.org/draft/2020-12/schema",
268
+ "properties" => { "rvs" => { "$ref" => "commands.json" }}
269
+ }
234
270
  out['commands/command_responses.json'] = output_json json
235
271
 
236
272
  items.each_pair { |key,item| output_command out, key, item }
@@ -239,13 +275,17 @@ module RSMP
239
275
  # convert a command to json schema
240
276
  def self.output_command out, key, item
241
277
  json = build_item item
242
- json["allOf"].first["properties"]['cO'] = { "const" => item['command'] }
278
+ # Always add the command operation (cO) constraint at the top-level properties
279
+ json["properties"] ||= {}
280
+ json["properties"]["cO"] = { "const" => item['command'] }
281
+
243
282
  out["commands/#{key}.json"] = output_json json
244
283
  end
245
284
 
246
285
  # output the json schema root
247
286
  def self.output_root out, meta
248
287
  json = {
288
+ "$schema" => "https://json-schema.org/draft/2020-12/schema",
249
289
  "name"=> meta['name'],
250
290
  "description"=> meta['description'],
251
291
  "version"=> meta['version'],
@@ -1,5 +1,5 @@
1
1
  module RSMP
2
2
  module Schema
3
- VERSION = "0.8.8"
3
+ VERSION = "0.9.0"
4
4
  end
5
5
  end
data/lib/rsmp_schema.rb CHANGED
@@ -1,5 +1,10 @@
1
1
  require 'yaml'
2
2
  require 'json_schemer'
3
+
4
+ # Define module hierarchy first
5
+ module RSMP
6
+ end
7
+
3
8
  require 'rsmp_schema/error'
4
9
  require 'rsmp_schema/schema'
5
10
  require 'rsmp_schema/convert/import/yaml'
data/rsmp_schema.gemspec CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Emil Tin"]
10
10
  spec.email = ["zf0f@kk.dk"]
11
11
 
12
- spec.summary = "Validate RSMP message against RSMP JSON Schema."
13
- spec.description = "Validate RSMP message against RSMP JSON Schema. Support validating against core and different SXL's, in different versions."
12
+ spec.summary = "Validate RSMP message using RSMP JSON Schema."
13
+ spec.description = "Validate RSMP message using RSMP JSON Schema. Support validating against core and different SXL's, in different versions."
14
14
  spec.homepage = "https://github.com/rsmp-nordic/rsmp_schema"
15
15
  spec.licenses = ['MIT']
16
16
  spec.required_ruby_version = '>= 3.0.0'
@@ -0,0 +1,90 @@
1
+ {
2
+ "title" : "Aggregated Status",
3
+ "description" : "Aggregated status message (bits 2 and 8 are unused and must be false in 3.3.0)",
4
+ "properties" : {
5
+ "mId" : { "$ref": "../3.1.2/definitions.json#/message_id" },
6
+ "aSTS" : { "$ref": "../3.1.2/definitions.json#/timestamp" },
7
+ "fP" : {
8
+ "description" : "Functional position",
9
+ "type" : ["string","null"]
10
+ },
11
+ "fS" : {
12
+ "description" : "Functional state",
13
+ "type" : ["string","null"]
14
+ },
15
+ "se" : {
16
+ "description" : "Aggregated status bits (2 and 8 unused -> always false)",
17
+ "type" : "array",
18
+ "minItems": 8,
19
+ "maxItems": 8,
20
+ "items": { "type": "boolean" },
21
+ "enum": [
22
+ [false,false,false,false,false,false,false,false],
23
+ [false,false,false,false,false,false,true,false],
24
+ [false,false,false,false,false,true,false,false],
25
+ [false,false,false,false,false,true,true,false],
26
+ [false,false,false,false,true,false,false,false],
27
+ [false,false,false,false,true,false,true,false],
28
+ [false,false,false,false,true,true,false,false],
29
+ [false,false,false,false,true,true,true,false],
30
+ [false,false,false,true,false,false,false,false],
31
+ [false,false,false,true,false,false,true,false],
32
+ [false,false,false,true,false,true,false,false],
33
+ [false,false,false,true,false,true,true,false],
34
+ [false,false,false,true,true,false,false,false],
35
+ [false,false,false,true,true,false,true,false],
36
+ [false,false,false,true,true,true,false,false],
37
+ [false,false,false,true,true,true,true,false],
38
+ [false,false,true,false,false,false,false,false],
39
+ [false,false,true,false,false,false,true,false],
40
+ [false,false,true,false,false,true,false,false],
41
+ [false,false,true,false,false,true,true,false],
42
+ [false,false,true,false,true,false,false,false],
43
+ [false,false,true,false,true,false,true,false],
44
+ [false,false,true,false,true,true,false,false],
45
+ [false,false,true,false,true,true,true,false],
46
+ [false,false,true,true,false,false,false,false],
47
+ [false,false,true,true,false,false,true,false],
48
+ [false,false,true,true,false,true,false,false],
49
+ [false,false,true,true,false,true,true,false],
50
+ [false,false,true,true,true,false,false,false],
51
+ [false,false,true,true,true,false,true,false],
52
+ [false,false,true,true,true,true,false,false],
53
+ [false,false,true,true,true,true,true,false],
54
+ [true,false,false,false,false,false,false,false],
55
+ [true,false,false,false,false,false,true,false],
56
+ [true,false,false,false,false,true,false,false],
57
+ [true,false,false,false,false,true,true,false],
58
+ [true,false,false,false,true,false,false,false],
59
+ [true,false,false,false,true,false,true,false],
60
+ [true,false,false,false,true,true,false,false],
61
+ [true,false,false,false,true,true,true,false],
62
+ [true,false,false,true,false,false,false,false],
63
+ [true,false,false,true,false,false,true,false],
64
+ [true,false,false,true,false,true,false,false],
65
+ [true,false,false,true,false,true,true,false],
66
+ [true,false,false,true,true,false,false,false],
67
+ [true,false,false,true,true,false,true,false],
68
+ [true,false,false,true,true,true,false,false],
69
+ [true,false,false,true,true,true,true,false],
70
+ [true,false,true,false,false,false,false,false],
71
+ [true,false,true,false,false,false,true,false],
72
+ [true,false,true,false,false,true,false,false],
73
+ [true,false,true,false,false,true,true,false],
74
+ [true,false,true,false,true,false,false,false],
75
+ [true,false,true,false,true,false,true,false],
76
+ [true,false,true,false,true,true,false,false],
77
+ [true,false,true,false,true,true,true,false],
78
+ [true,false,true,true,false,false,false,false],
79
+ [true,false,true,true,false,false,true,false],
80
+ [true,false,true,true,false,true,false,false],
81
+ [true,false,true,true,false,true,true,false],
82
+ [true,false,true,true,true,false,false,false],
83
+ [true,false,true,true,true,false,true,false],
84
+ [true,false,true,true,true,true,false,false],
85
+ [true,false,true,true,true,true,true,false]
86
+ ]
87
+ }
88
+ },
89
+ "required" : [ "mId", "aSTS", "fP", "fS", "se" ]
90
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "title" : "Aggregated Status Request",
3
+ "description" : "Aggregated status request message",
4
+ "properties" : {
5
+ "mId" : { "$ref": "../3.1.2/definitions.json#/message_id" },
6
+ "cId" : { "$ref": "definitions.json#/component_id" }
7
+ },
8
+ "required" : [ "mId", "cId" ]
9
+ }