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.
- checksums.yaml +4 -4
- data/.devcontainer/devcontainer.json +22 -0
- data/.github/copilot-instructions.md +196 -0
- data/.gitignore +2 -0
- data/.tool-versions +1 -1
- data/Gemfile.lock +12 -16
- data/examples/validate.rb +8 -10
- data/lib/rsmp_schema/convert/export/json_schema.rb +78 -38
- data/lib/rsmp_schema/version.rb +1 -1
- data/lib/rsmp_schema.rb +5 -0
- data/rsmp_schema.gemspec +2 -2
- data/schemas/core/3.3.0/aggregated_status.json +90 -0
- data/schemas/core/3.3.0/aggregated_status_request.json +9 -0
- data/schemas/core/3.3.0/alarm.json +75 -0
- data/schemas/core/3.3.0/alarm_request.json +3 -0
- data/schemas/core/3.3.0/command_request.json +26 -0
- data/schemas/core/3.3.0/command_response.json +35 -0
- data/schemas/core/3.3.0/core.json +39 -0
- data/schemas/core/3.3.0/definitions.json +35 -0
- data/schemas/core/3.3.0/rsmp.json +133 -0
- data/schemas/core/3.3.0/status.json +21 -0
- data/schemas/core/3.3.0/status_request.json +23 -0
- data/schemas/core/3.3.0/status_subscribe.json +31 -0
- data/schemas/core/3.3.0/version.json +57 -0
- data/schemas/tlc/1.0.10/alarms/A0001.json +1 -0
- data/schemas/tlc/1.0.10/alarms/A0002.json +1 -0
- data/schemas/tlc/1.0.10/alarms/A0003.json +1 -0
- data/schemas/tlc/1.0.10/alarms/A0004.json +1 -0
- data/schemas/tlc/1.0.10/alarms/A0005.json +1 -0
- data/schemas/tlc/1.0.10/alarms/A0006.json +1 -0
- data/schemas/tlc/1.0.10/alarms/A0007.json +1 -0
- data/schemas/tlc/1.0.10/alarms/A0008.json +15 -46
- data/schemas/tlc/1.0.10/alarms/A0009.json +1 -0
- data/schemas/tlc/1.0.10/alarms/A0101.json +1 -0
- data/schemas/tlc/1.0.10/alarms/A0201.json +20 -45
- data/schemas/tlc/1.0.10/alarms/A0202.json +20 -45
- data/schemas/tlc/1.0.10/alarms/A0301.json +70 -110
- data/schemas/tlc/1.0.10/alarms/A0302.json +93 -136
- data/schemas/tlc/1.0.10/alarms/alarms.json +1 -0
- data/schemas/tlc/1.0.10/commands/M0001.json +72 -124
- data/schemas/tlc/1.0.10/commands/M0002.json +49 -92
- data/schemas/tlc/1.0.10/commands/M0003.json +49 -92
- data/schemas/tlc/1.0.10/commands/M0004.json +32 -66
- data/schemas/tlc/1.0.10/commands/M0005.json +49 -92
- data/schemas/tlc/1.0.10/commands/M0006.json +49 -92
- data/schemas/tlc/1.0.10/commands/M0007.json +32 -66
- data/schemas/tlc/1.0.10/commands/M0008.json +49 -92
- data/schemas/tlc/1.0.10/commands/M0010.json +32 -66
- data/schemas/tlc/1.0.10/commands/M0011.json +32 -66
- data/schemas/tlc/1.0.10/commands/M0012.json +32 -60
- data/schemas/tlc/1.0.10/commands/M0013.json +32 -60
- data/schemas/tlc/1.0.10/commands/M0019.json +67 -119
- data/schemas/tlc/1.0.10/commands/M0103.json +52 -83
- data/schemas/tlc/1.0.10/commands/M0104.json +121 -200
- data/schemas/tlc/1.0.10/commands/command_requests.json +1 -0
- data/schemas/tlc/1.0.10/commands/command_responses.json +1 -0
- data/schemas/tlc/1.0.10/commands/commands.json +1 -0
- data/schemas/tlc/1.0.10/rsmp.json +1 -0
- data/schemas/tlc/1.0.10/statuses/S0001.json +78 -124
- data/schemas/tlc/1.0.10/statuses/S0002.json +29 -48
- data/schemas/tlc/1.0.10/statuses/S0003.json +44 -66
- data/schemas/tlc/1.0.10/statuses/S0004.json +44 -66
- data/schemas/tlc/1.0.10/statuses/S0005.json +29 -54
- data/schemas/tlc/1.0.10/statuses/S0006.json +44 -78
- data/schemas/tlc/1.0.10/statuses/S0007.json +44 -78
- data/schemas/tlc/1.0.10/statuses/S0008.json +44 -78
- data/schemas/tlc/1.0.10/statuses/S0009.json +44 -78
- data/schemas/tlc/1.0.10/statuses/S0010.json +44 -78
- data/schemas/tlc/1.0.10/statuses/S0011.json +44 -78
- data/schemas/tlc/1.0.10/statuses/S0012.json +44 -78
- data/schemas/tlc/1.0.10/statuses/S0013.json +44 -78
- data/schemas/tlc/1.0.10/statuses/S0014.json +29 -54
- data/schemas/tlc/1.0.10/statuses/S0015.json +29 -54
- data/schemas/tlc/1.0.10/statuses/S0016.json +29 -54
- data/schemas/tlc/1.0.10/statuses/S0017.json +29 -54
- data/schemas/tlc/1.0.10/statuses/S0018.json +29 -54
- data/schemas/tlc/1.0.10/statuses/S0019.json +29 -54
- data/schemas/tlc/1.0.10/statuses/S0020.json +44 -78
- data/schemas/tlc/1.0.10/statuses/S0021.json +30 -49
- data/schemas/tlc/1.0.10/statuses/S0091.json +47 -69
- data/schemas/tlc/1.0.10/statuses/S0092.json +47 -69
- data/schemas/tlc/1.0.10/statuses/S0095.json +29 -48
- data/schemas/tlc/1.0.10/statuses/S0096.json +110 -180
- data/schemas/tlc/1.0.10/statuses/S0201.json +44 -78
- data/schemas/tlc/1.0.10/statuses/S0202.json +44 -78
- data/schemas/tlc/1.0.10/statuses/S0203.json +44 -78
- data/schemas/tlc/1.0.10/statuses/S0204.json +178 -284
- data/schemas/tlc/1.0.10/statuses/statuses.json +1 -0
- data/schemas/tlc/1.0.13/alarms/A0001.json +1 -0
- data/schemas/tlc/1.0.13/alarms/A0002.json +1 -0
- data/schemas/tlc/1.0.13/alarms/A0003.json +1 -0
- data/schemas/tlc/1.0.13/alarms/A0004.json +1 -0
- data/schemas/tlc/1.0.13/alarms/A0005.json +1 -0
- data/schemas/tlc/1.0.13/alarms/A0006.json +1 -0
- data/schemas/tlc/1.0.13/alarms/A0007.json +1 -0
- data/schemas/tlc/1.0.13/alarms/A0008.json +15 -46
- data/schemas/tlc/1.0.13/alarms/A0009.json +1 -0
- data/schemas/tlc/1.0.13/alarms/A0101.json +1 -0
- data/schemas/tlc/1.0.13/alarms/A0201.json +20 -45
- data/schemas/tlc/1.0.13/alarms/A0202.json +20 -45
- data/schemas/tlc/1.0.13/alarms/A0301.json +70 -110
- data/schemas/tlc/1.0.13/alarms/A0302.json +93 -136
- data/schemas/tlc/1.0.13/alarms/alarms.json +1 -0
- data/schemas/tlc/1.0.13/commands/M0001.json +72 -124
- data/schemas/tlc/1.0.13/commands/M0002.json +49 -92
- data/schemas/tlc/1.0.13/commands/M0003.json +49 -92
- data/schemas/tlc/1.0.13/commands/M0004.json +32 -66
- data/schemas/tlc/1.0.13/commands/M0005.json +49 -92
- data/schemas/tlc/1.0.13/commands/M0006.json +49 -92
- data/schemas/tlc/1.0.13/commands/M0007.json +32 -66
- data/schemas/tlc/1.0.13/commands/M0008.json +49 -92
- data/schemas/tlc/1.0.13/commands/M0010.json +32 -66
- data/schemas/tlc/1.0.13/commands/M0011.json +32 -66
- data/schemas/tlc/1.0.13/commands/M0012.json +32 -60
- data/schemas/tlc/1.0.13/commands/M0013.json +32 -60
- data/schemas/tlc/1.0.13/commands/M0014.json +49 -86
- data/schemas/tlc/1.0.13/commands/M0015.json +49 -92
- data/schemas/tlc/1.0.13/commands/M0016.json +32 -60
- data/schemas/tlc/1.0.13/commands/M0017.json +32 -60
- data/schemas/tlc/1.0.13/commands/M0018.json +49 -92
- data/schemas/tlc/1.0.13/commands/M0019.json +67 -119
- data/schemas/tlc/1.0.13/commands/M0103.json +52 -83
- data/schemas/tlc/1.0.13/commands/M0104.json +121 -200
- data/schemas/tlc/1.0.13/commands/command_requests.json +1 -0
- data/schemas/tlc/1.0.13/commands/command_responses.json +1 -0
- data/schemas/tlc/1.0.13/commands/commands.json +1 -0
- data/schemas/tlc/1.0.13/rsmp.json +1 -0
- data/schemas/tlc/1.0.13/statuses/S0001.json +78 -124
- data/schemas/tlc/1.0.13/statuses/S0002.json +29 -48
- data/schemas/tlc/1.0.13/statuses/S0003.json +44 -66
- data/schemas/tlc/1.0.13/statuses/S0004.json +44 -66
- data/schemas/tlc/1.0.13/statuses/S0005.json +29 -54
- data/schemas/tlc/1.0.13/statuses/S0006.json +44 -78
- data/schemas/tlc/1.0.13/statuses/S0007.json +44 -78
- data/schemas/tlc/1.0.13/statuses/S0008.json +44 -78
- data/schemas/tlc/1.0.13/statuses/S0009.json +44 -78
- data/schemas/tlc/1.0.13/statuses/S0010.json +44 -78
- data/schemas/tlc/1.0.13/statuses/S0011.json +44 -78
- data/schemas/tlc/1.0.13/statuses/S0012.json +44 -78
- data/schemas/tlc/1.0.13/statuses/S0013.json +44 -78
- data/schemas/tlc/1.0.13/statuses/S0014.json +29 -54
- data/schemas/tlc/1.0.13/statuses/S0015.json +29 -54
- data/schemas/tlc/1.0.13/statuses/S0016.json +29 -54
- data/schemas/tlc/1.0.13/statuses/S0017.json +29 -54
- data/schemas/tlc/1.0.13/statuses/S0018.json +29 -54
- data/schemas/tlc/1.0.13/statuses/S0019.json +29 -54
- data/schemas/tlc/1.0.13/statuses/S0020.json +44 -78
- data/schemas/tlc/1.0.13/statuses/S0021.json +30 -49
- data/schemas/tlc/1.0.13/statuses/S0022.json +29 -48
- data/schemas/tlc/1.0.13/statuses/S0023.json +30 -49
- data/schemas/tlc/1.0.13/statuses/S0024.json +30 -49
- data/schemas/tlc/1.0.13/statuses/S0025.json +153 -241
- data/schemas/tlc/1.0.13/statuses/S0026.json +29 -48
- data/schemas/tlc/1.0.13/statuses/S0027.json +29 -48
- data/schemas/tlc/1.0.13/statuses/S0028.json +29 -48
- data/schemas/tlc/1.0.13/statuses/S0029.json +29 -48
- data/schemas/tlc/1.0.13/statuses/S0091.json +47 -69
- data/schemas/tlc/1.0.13/statuses/S0092.json +47 -69
- data/schemas/tlc/1.0.13/statuses/S0095.json +29 -48
- data/schemas/tlc/1.0.13/statuses/S0096.json +110 -180
- data/schemas/tlc/1.0.13/statuses/S0201.json +44 -78
- data/schemas/tlc/1.0.13/statuses/S0202.json +44 -78
- data/schemas/tlc/1.0.13/statuses/S0203.json +44 -78
- data/schemas/tlc/1.0.13/statuses/S0204.json +178 -284
- data/schemas/tlc/1.0.13/statuses/statuses.json +1 -0
- data/schemas/tlc/1.0.14/alarms/A0001.json +1 -0
- data/schemas/tlc/1.0.14/alarms/A0002.json +1 -0
- data/schemas/tlc/1.0.14/alarms/A0003.json +1 -0
- data/schemas/tlc/1.0.14/alarms/A0004.json +1 -0
- data/schemas/tlc/1.0.14/alarms/A0005.json +1 -0
- data/schemas/tlc/1.0.14/alarms/A0006.json +1 -0
- data/schemas/tlc/1.0.14/alarms/A0007.json +1 -0
- data/schemas/tlc/1.0.14/alarms/A0008.json +15 -46
- data/schemas/tlc/1.0.14/alarms/A0009.json +1 -0
- data/schemas/tlc/1.0.14/alarms/A0101.json +1 -0
- data/schemas/tlc/1.0.14/alarms/A0201.json +20 -45
- data/schemas/tlc/1.0.14/alarms/A0202.json +20 -45
- data/schemas/tlc/1.0.14/alarms/A0301.json +70 -110
- data/schemas/tlc/1.0.14/alarms/A0302.json +93 -136
- data/schemas/tlc/1.0.14/alarms/alarms.json +1 -0
- data/schemas/tlc/1.0.14/commands/M0001.json +72 -124
- data/schemas/tlc/1.0.14/commands/M0002.json +49 -92
- data/schemas/tlc/1.0.14/commands/M0003.json +49 -92
- data/schemas/tlc/1.0.14/commands/M0004.json +32 -66
- data/schemas/tlc/1.0.14/commands/M0005.json +49 -92
- data/schemas/tlc/1.0.14/commands/M0006.json +49 -92
- data/schemas/tlc/1.0.14/commands/M0007.json +32 -66
- data/schemas/tlc/1.0.14/commands/M0008.json +49 -92
- data/schemas/tlc/1.0.14/commands/M0010.json +32 -66
- data/schemas/tlc/1.0.14/commands/M0011.json +32 -66
- data/schemas/tlc/1.0.14/commands/M0012.json +32 -60
- data/schemas/tlc/1.0.14/commands/M0013.json +32 -60
- data/schemas/tlc/1.0.14/commands/M0014.json +49 -86
- data/schemas/tlc/1.0.14/commands/M0015.json +49 -92
- data/schemas/tlc/1.0.14/commands/M0016.json +32 -60
- data/schemas/tlc/1.0.14/commands/M0017.json +32 -60
- data/schemas/tlc/1.0.14/commands/M0018.json +49 -92
- data/schemas/tlc/1.0.14/commands/M0019.json +67 -119
- data/schemas/tlc/1.0.14/commands/M0103.json +52 -83
- data/schemas/tlc/1.0.14/commands/M0104.json +121 -200
- data/schemas/tlc/1.0.14/commands/command_requests.json +1 -0
- data/schemas/tlc/1.0.14/commands/command_responses.json +1 -0
- data/schemas/tlc/1.0.14/commands/commands.json +1 -0
- data/schemas/tlc/1.0.14/rsmp.json +1 -0
- data/schemas/tlc/1.0.14/statuses/S0001.json +78 -124
- data/schemas/tlc/1.0.14/statuses/S0002.json +29 -48
- data/schemas/tlc/1.0.14/statuses/S0003.json +44 -66
- data/schemas/tlc/1.0.14/statuses/S0004.json +44 -66
- data/schemas/tlc/1.0.14/statuses/S0005.json +29 -54
- data/schemas/tlc/1.0.14/statuses/S0006.json +44 -78
- data/schemas/tlc/1.0.14/statuses/S0007.json +44 -78
- data/schemas/tlc/1.0.14/statuses/S0008.json +44 -78
- data/schemas/tlc/1.0.14/statuses/S0009.json +44 -78
- data/schemas/tlc/1.0.14/statuses/S0010.json +44 -78
- data/schemas/tlc/1.0.14/statuses/S0011.json +44 -78
- data/schemas/tlc/1.0.14/statuses/S0012.json +44 -78
- data/schemas/tlc/1.0.14/statuses/S0013.json +44 -78
- data/schemas/tlc/1.0.14/statuses/S0014.json +29 -54
- data/schemas/tlc/1.0.14/statuses/S0015.json +29 -54
- data/schemas/tlc/1.0.14/statuses/S0016.json +29 -54
- data/schemas/tlc/1.0.14/statuses/S0017.json +29 -54
- data/schemas/tlc/1.0.14/statuses/S0018.json +29 -54
- data/schemas/tlc/1.0.14/statuses/S0019.json +29 -54
- data/schemas/tlc/1.0.14/statuses/S0020.json +44 -78
- data/schemas/tlc/1.0.14/statuses/S0021.json +30 -49
- data/schemas/tlc/1.0.14/statuses/S0022.json +29 -48
- data/schemas/tlc/1.0.14/statuses/S0023.json +30 -49
- data/schemas/tlc/1.0.14/statuses/S0024.json +30 -49
- data/schemas/tlc/1.0.14/statuses/S0025.json +153 -241
- data/schemas/tlc/1.0.14/statuses/S0026.json +29 -48
- data/schemas/tlc/1.0.14/statuses/S0027.json +29 -48
- data/schemas/tlc/1.0.14/statuses/S0028.json +29 -48
- data/schemas/tlc/1.0.14/statuses/S0029.json +29 -48
- data/schemas/tlc/1.0.14/statuses/S0091.json +47 -69
- data/schemas/tlc/1.0.14/statuses/S0092.json +47 -69
- data/schemas/tlc/1.0.14/statuses/S0095.json +29 -48
- data/schemas/tlc/1.0.14/statuses/S0096.json +110 -180
- data/schemas/tlc/1.0.14/statuses/S0201.json +44 -78
- data/schemas/tlc/1.0.14/statuses/S0202.json +44 -78
- data/schemas/tlc/1.0.14/statuses/S0203.json +44 -78
- data/schemas/tlc/1.0.14/statuses/S0204.json +178 -284
- data/schemas/tlc/1.0.14/statuses/S0205.json +44 -72
- data/schemas/tlc/1.0.14/statuses/S0206.json +44 -72
- data/schemas/tlc/1.0.14/statuses/S0207.json +44 -72
- data/schemas/tlc/1.0.14/statuses/S0208.json +189 -241
- data/schemas/tlc/1.0.14/statuses/statuses.json +1 -0
- data/schemas/tlc/1.0.15/alarms/A0001.json +1 -0
- data/schemas/tlc/1.0.15/alarms/A0002.json +1 -0
- data/schemas/tlc/1.0.15/alarms/A0003.json +1 -0
- data/schemas/tlc/1.0.15/alarms/A0004.json +1 -0
- data/schemas/tlc/1.0.15/alarms/A0005.json +1 -0
- data/schemas/tlc/1.0.15/alarms/A0006.json +1 -0
- data/schemas/tlc/1.0.15/alarms/A0007.json +1 -0
- data/schemas/tlc/1.0.15/alarms/A0008.json +15 -46
- data/schemas/tlc/1.0.15/alarms/A0009.json +1 -0
- data/schemas/tlc/1.0.15/alarms/A0010.json +1 -0
- data/schemas/tlc/1.0.15/alarms/A0101.json +1 -0
- data/schemas/tlc/1.0.15/alarms/A0201.json +20 -45
- data/schemas/tlc/1.0.15/alarms/A0202.json +20 -45
- data/schemas/tlc/1.0.15/alarms/A0301.json +70 -110
- data/schemas/tlc/1.0.15/alarms/A0302.json +93 -136
- data/schemas/tlc/1.0.15/alarms/alarms.json +1 -0
- data/schemas/tlc/1.0.15/commands/M0001.json +72 -124
- data/schemas/tlc/1.0.15/commands/M0002.json +49 -92
- data/schemas/tlc/1.0.15/commands/M0003.json +49 -92
- data/schemas/tlc/1.0.15/commands/M0004.json +32 -66
- data/schemas/tlc/1.0.15/commands/M0005.json +49 -92
- data/schemas/tlc/1.0.15/commands/M0006.json +49 -92
- data/schemas/tlc/1.0.15/commands/M0007.json +32 -66
- data/schemas/tlc/1.0.15/commands/M0008.json +49 -92
- data/schemas/tlc/1.0.15/commands/M0010.json +32 -66
- data/schemas/tlc/1.0.15/commands/M0011.json +32 -66
- data/schemas/tlc/1.0.15/commands/M0012.json +32 -60
- data/schemas/tlc/1.0.15/commands/M0013.json +32 -60
- data/schemas/tlc/1.0.15/commands/M0014.json +49 -86
- data/schemas/tlc/1.0.15/commands/M0015.json +49 -92
- data/schemas/tlc/1.0.15/commands/M0016.json +32 -60
- data/schemas/tlc/1.0.15/commands/M0017.json +32 -60
- data/schemas/tlc/1.0.15/commands/M0018.json +49 -92
- data/schemas/tlc/1.0.15/commands/M0019.json +67 -119
- data/schemas/tlc/1.0.15/commands/M0020.json +67 -119
- data/schemas/tlc/1.0.15/commands/M0021.json +32 -60
- data/schemas/tlc/1.0.15/commands/M0103.json +52 -83
- data/schemas/tlc/1.0.15/commands/M0104.json +121 -200
- data/schemas/tlc/1.0.15/commands/command_requests.json +1 -0
- data/schemas/tlc/1.0.15/commands/command_responses.json +1 -0
- data/schemas/tlc/1.0.15/commands/commands.json +1 -0
- data/schemas/tlc/1.0.15/rsmp.json +1 -0
- data/schemas/tlc/1.0.15/statuses/S0001.json +78 -124
- data/schemas/tlc/1.0.15/statuses/S0002.json +29 -48
- data/schemas/tlc/1.0.15/statuses/S0003.json +44 -66
- data/schemas/tlc/1.0.15/statuses/S0004.json +44 -66
- data/schemas/tlc/1.0.15/statuses/S0005.json +29 -54
- data/schemas/tlc/1.0.15/statuses/S0006.json +44 -78
- data/schemas/tlc/1.0.15/statuses/S0007.json +44 -78
- data/schemas/tlc/1.0.15/statuses/S0008.json +44 -78
- data/schemas/tlc/1.0.15/statuses/S0009.json +44 -78
- data/schemas/tlc/1.0.15/statuses/S0010.json +44 -78
- data/schemas/tlc/1.0.15/statuses/S0011.json +44 -78
- data/schemas/tlc/1.0.15/statuses/S0012.json +44 -78
- data/schemas/tlc/1.0.15/statuses/S0013.json +44 -78
- data/schemas/tlc/1.0.15/statuses/S0014.json +29 -54
- data/schemas/tlc/1.0.15/statuses/S0015.json +29 -54
- data/schemas/tlc/1.0.15/statuses/S0016.json +29 -54
- data/schemas/tlc/1.0.15/statuses/S0017.json +29 -54
- data/schemas/tlc/1.0.15/statuses/S0018.json +29 -54
- data/schemas/tlc/1.0.15/statuses/S0019.json +29 -54
- data/schemas/tlc/1.0.15/statuses/S0020.json +44 -78
- data/schemas/tlc/1.0.15/statuses/S0021.json +30 -49
- data/schemas/tlc/1.0.15/statuses/S0022.json +29 -48
- data/schemas/tlc/1.0.15/statuses/S0023.json +30 -49
- data/schemas/tlc/1.0.15/statuses/S0024.json +30 -49
- data/schemas/tlc/1.0.15/statuses/S0025.json +153 -241
- data/schemas/tlc/1.0.15/statuses/S0026.json +29 -48
- data/schemas/tlc/1.0.15/statuses/S0027.json +29 -48
- data/schemas/tlc/1.0.15/statuses/S0028.json +29 -48
- data/schemas/tlc/1.0.15/statuses/S0029.json +29 -48
- data/schemas/tlc/1.0.15/statuses/S0030.json +29 -48
- data/schemas/tlc/1.0.15/statuses/S0031.json +29 -48
- data/schemas/tlc/1.0.15/statuses/S0091.json +47 -69
- data/schemas/tlc/1.0.15/statuses/S0092.json +47 -69
- data/schemas/tlc/1.0.15/statuses/S0095.json +29 -48
- data/schemas/tlc/1.0.15/statuses/S0096.json +110 -180
- data/schemas/tlc/1.0.15/statuses/S0097.json +44 -72
- data/schemas/tlc/1.0.15/statuses/S0098.json +61 -92
- data/schemas/tlc/1.0.15/statuses/S0201.json +44 -78
- data/schemas/tlc/1.0.15/statuses/S0202.json +44 -78
- data/schemas/tlc/1.0.15/statuses/S0203.json +44 -78
- data/schemas/tlc/1.0.15/statuses/S0204.json +178 -284
- data/schemas/tlc/1.0.15/statuses/S0205.json +44 -72
- data/schemas/tlc/1.0.15/statuses/S0206.json +44 -72
- data/schemas/tlc/1.0.15/statuses/S0207.json +44 -72
- data/schemas/tlc/1.0.15/statuses/S0208.json +189 -241
- data/schemas/tlc/1.0.15/statuses/statuses.json +1 -0
- data/schemas/tlc/1.0.7/alarms/A0001.json +1 -0
- data/schemas/tlc/1.0.7/alarms/A0002.json +1 -0
- data/schemas/tlc/1.0.7/alarms/A0003.json +1 -0
- data/schemas/tlc/1.0.7/alarms/A0004.json +1 -0
- data/schemas/tlc/1.0.7/alarms/A0005.json +1 -0
- data/schemas/tlc/1.0.7/alarms/A0006.json +1 -0
- data/schemas/tlc/1.0.7/alarms/A0007.json +1 -0
- data/schemas/tlc/1.0.7/alarms/A0008.json +15 -46
- data/schemas/tlc/1.0.7/alarms/A0009.json +1 -0
- data/schemas/tlc/1.0.7/alarms/A0101.json +1 -0
- data/schemas/tlc/1.0.7/alarms/A0201.json +20 -45
- data/schemas/tlc/1.0.7/alarms/A0202.json +20 -45
- data/schemas/tlc/1.0.7/alarms/A0301.json +70 -110
- data/schemas/tlc/1.0.7/alarms/A0302.json +93 -136
- data/schemas/tlc/1.0.7/alarms/alarms.json +1 -0
- data/schemas/tlc/1.0.7/commands/M0001.json +72 -124
- data/schemas/tlc/1.0.7/commands/M0002.json +49 -92
- data/schemas/tlc/1.0.7/commands/M0003.json +49 -92
- data/schemas/tlc/1.0.7/commands/M0004.json +32 -66
- data/schemas/tlc/1.0.7/commands/M0005.json +49 -92
- data/schemas/tlc/1.0.7/commands/M0006.json +49 -92
- data/schemas/tlc/1.0.7/commands/M0007.json +32 -66
- data/schemas/tlc/1.0.7/commands/M0008.json +49 -92
- data/schemas/tlc/1.0.7/commands/M0010.json +32 -66
- data/schemas/tlc/1.0.7/commands/M0011.json +32 -66
- data/schemas/tlc/1.0.7/commands/M0019.json +67 -119
- data/schemas/tlc/1.0.7/commands/M0103.json +52 -83
- data/schemas/tlc/1.0.7/commands/M0104.json +121 -200
- data/schemas/tlc/1.0.7/commands/command_requests.json +1 -0
- data/schemas/tlc/1.0.7/commands/command_responses.json +1 -0
- data/schemas/tlc/1.0.7/commands/commands.json +1 -0
- data/schemas/tlc/1.0.7/rsmp.json +1 -0
- data/schemas/tlc/1.0.7/statuses/S0001.json +78 -124
- data/schemas/tlc/1.0.7/statuses/S0002.json +29 -48
- data/schemas/tlc/1.0.7/statuses/S0003.json +44 -66
- data/schemas/tlc/1.0.7/statuses/S0004.json +44 -66
- data/schemas/tlc/1.0.7/statuses/S0005.json +29 -54
- data/schemas/tlc/1.0.7/statuses/S0006.json +44 -78
- data/schemas/tlc/1.0.7/statuses/S0007.json +44 -78
- data/schemas/tlc/1.0.7/statuses/S0008.json +44 -78
- data/schemas/tlc/1.0.7/statuses/S0009.json +44 -78
- data/schemas/tlc/1.0.7/statuses/S0010.json +44 -78
- data/schemas/tlc/1.0.7/statuses/S0011.json +44 -78
- data/schemas/tlc/1.0.7/statuses/S0012.json +44 -78
- data/schemas/tlc/1.0.7/statuses/S0013.json +44 -78
- data/schemas/tlc/1.0.7/statuses/S0014.json +29 -54
- data/schemas/tlc/1.0.7/statuses/S0015.json +29 -54
- data/schemas/tlc/1.0.7/statuses/S0016.json +29 -54
- data/schemas/tlc/1.0.7/statuses/S0017.json +29 -54
- data/schemas/tlc/1.0.7/statuses/S0018.json +29 -54
- data/schemas/tlc/1.0.7/statuses/S0019.json +29 -54
- data/schemas/tlc/1.0.7/statuses/S0020.json +44 -78
- data/schemas/tlc/1.0.7/statuses/S0021.json +30 -49
- data/schemas/tlc/1.0.7/statuses/S0025.json +153 -241
- data/schemas/tlc/1.0.7/statuses/S0091.json +47 -69
- data/schemas/tlc/1.0.7/statuses/S0092.json +47 -69
- data/schemas/tlc/1.0.7/statuses/S0095.json +29 -48
- data/schemas/tlc/1.0.7/statuses/S0096.json +110 -180
- data/schemas/tlc/1.0.7/statuses/S0201.json +44 -78
- data/schemas/tlc/1.0.7/statuses/S0202.json +44 -78
- data/schemas/tlc/1.0.7/statuses/S0203.json +44 -78
- data/schemas/tlc/1.0.7/statuses/S0204.json +178 -284
- data/schemas/tlc/1.0.7/statuses/statuses.json +1 -0
- data/schemas/tlc/1.0.8/alarms/A0001.json +1 -0
- data/schemas/tlc/1.0.8/alarms/A0002.json +1 -0
- data/schemas/tlc/1.0.8/alarms/A0003.json +1 -0
- data/schemas/tlc/1.0.8/alarms/A0004.json +1 -0
- data/schemas/tlc/1.0.8/alarms/A0005.json +1 -0
- data/schemas/tlc/1.0.8/alarms/A0006.json +1 -0
- data/schemas/tlc/1.0.8/alarms/A0007.json +1 -0
- data/schemas/tlc/1.0.8/alarms/A0008.json +15 -46
- data/schemas/tlc/1.0.8/alarms/A0009.json +1 -0
- data/schemas/tlc/1.0.8/alarms/A0101.json +1 -0
- data/schemas/tlc/1.0.8/alarms/A0201.json +20 -45
- data/schemas/tlc/1.0.8/alarms/A0202.json +20 -45
- data/schemas/tlc/1.0.8/alarms/A0301.json +70 -110
- data/schemas/tlc/1.0.8/alarms/A0302.json +93 -136
- data/schemas/tlc/1.0.8/alarms/alarms.json +1 -0
- data/schemas/tlc/1.0.8/commands/M0001.json +72 -124
- data/schemas/tlc/1.0.8/commands/M0002.json +49 -92
- data/schemas/tlc/1.0.8/commands/M0003.json +49 -92
- data/schemas/tlc/1.0.8/commands/M0004.json +32 -66
- data/schemas/tlc/1.0.8/commands/M0005.json +49 -92
- data/schemas/tlc/1.0.8/commands/M0006.json +49 -92
- data/schemas/tlc/1.0.8/commands/M0007.json +32 -66
- data/schemas/tlc/1.0.8/commands/M0008.json +49 -92
- data/schemas/tlc/1.0.8/commands/M0010.json +32 -66
- data/schemas/tlc/1.0.8/commands/M0011.json +32 -66
- data/schemas/tlc/1.0.8/commands/M0012.json +32 -60
- data/schemas/tlc/1.0.8/commands/M0013.json +32 -60
- data/schemas/tlc/1.0.8/commands/M0019.json +67 -119
- data/schemas/tlc/1.0.8/commands/M0103.json +52 -83
- data/schemas/tlc/1.0.8/commands/M0104.json +121 -200
- data/schemas/tlc/1.0.8/commands/command_requests.json +1 -0
- data/schemas/tlc/1.0.8/commands/command_responses.json +1 -0
- data/schemas/tlc/1.0.8/commands/commands.json +1 -0
- data/schemas/tlc/1.0.8/rsmp.json +1 -0
- data/schemas/tlc/1.0.8/statuses/S0001.json +78 -124
- data/schemas/tlc/1.0.8/statuses/S0002.json +29 -48
- data/schemas/tlc/1.0.8/statuses/S0003.json +44 -66
- data/schemas/tlc/1.0.8/statuses/S0004.json +44 -66
- data/schemas/tlc/1.0.8/statuses/S0005.json +29 -54
- data/schemas/tlc/1.0.8/statuses/S0006.json +44 -78
- data/schemas/tlc/1.0.8/statuses/S0007.json +44 -78
- data/schemas/tlc/1.0.8/statuses/S0008.json +44 -78
- data/schemas/tlc/1.0.8/statuses/S0009.json +44 -78
- data/schemas/tlc/1.0.8/statuses/S0010.json +44 -78
- data/schemas/tlc/1.0.8/statuses/S0011.json +44 -78
- data/schemas/tlc/1.0.8/statuses/S0012.json +44 -78
- data/schemas/tlc/1.0.8/statuses/S0013.json +44 -78
- data/schemas/tlc/1.0.8/statuses/S0014.json +29 -54
- data/schemas/tlc/1.0.8/statuses/S0015.json +29 -54
- data/schemas/tlc/1.0.8/statuses/S0016.json +29 -54
- data/schemas/tlc/1.0.8/statuses/S0017.json +29 -54
- data/schemas/tlc/1.0.8/statuses/S0018.json +29 -54
- data/schemas/tlc/1.0.8/statuses/S0019.json +29 -54
- data/schemas/tlc/1.0.8/statuses/S0020.json +44 -78
- data/schemas/tlc/1.0.8/statuses/S0021.json +30 -49
- data/schemas/tlc/1.0.8/statuses/S0091.json +47 -69
- data/schemas/tlc/1.0.8/statuses/S0092.json +47 -69
- data/schemas/tlc/1.0.8/statuses/S0095.json +29 -48
- data/schemas/tlc/1.0.8/statuses/S0096.json +110 -180
- data/schemas/tlc/1.0.8/statuses/S0201.json +44 -78
- data/schemas/tlc/1.0.8/statuses/S0202.json +44 -78
- data/schemas/tlc/1.0.8/statuses/S0203.json +44 -78
- data/schemas/tlc/1.0.8/statuses/S0204.json +178 -284
- data/schemas/tlc/1.0.8/statuses/statuses.json +1 -0
- data/schemas/tlc/1.0.9/alarms/A0001.json +1 -0
- data/schemas/tlc/1.0.9/alarms/A0002.json +1 -0
- data/schemas/tlc/1.0.9/alarms/A0003.json +1 -0
- data/schemas/tlc/1.0.9/alarms/A0004.json +1 -0
- data/schemas/tlc/1.0.9/alarms/A0005.json +1 -0
- data/schemas/tlc/1.0.9/alarms/A0006.json +1 -0
- data/schemas/tlc/1.0.9/alarms/A0007.json +1 -0
- data/schemas/tlc/1.0.9/alarms/A0008.json +15 -46
- data/schemas/tlc/1.0.9/alarms/A0009.json +1 -0
- data/schemas/tlc/1.0.9/alarms/A0101.json +1 -0
- data/schemas/tlc/1.0.9/alarms/A0201.json +20 -45
- data/schemas/tlc/1.0.9/alarms/A0202.json +20 -45
- data/schemas/tlc/1.0.9/alarms/A0301.json +70 -110
- data/schemas/tlc/1.0.9/alarms/A0302.json +93 -136
- data/schemas/tlc/1.0.9/alarms/alarms.json +1 -0
- data/schemas/tlc/1.0.9/commands/M0001.json +72 -124
- data/schemas/tlc/1.0.9/commands/M0002.json +49 -92
- data/schemas/tlc/1.0.9/commands/M0003.json +49 -92
- data/schemas/tlc/1.0.9/commands/M0004.json +32 -66
- data/schemas/tlc/1.0.9/commands/M0005.json +49 -92
- data/schemas/tlc/1.0.9/commands/M0006.json +49 -92
- data/schemas/tlc/1.0.9/commands/M0007.json +32 -66
- data/schemas/tlc/1.0.9/commands/M0008.json +49 -92
- data/schemas/tlc/1.0.9/commands/M0010.json +32 -66
- data/schemas/tlc/1.0.9/commands/M0011.json +32 -66
- data/schemas/tlc/1.0.9/commands/M0012.json +32 -60
- data/schemas/tlc/1.0.9/commands/M0013.json +32 -60
- data/schemas/tlc/1.0.9/commands/M0019.json +67 -119
- data/schemas/tlc/1.0.9/commands/M0103.json +52 -83
- data/schemas/tlc/1.0.9/commands/M0104.json +121 -200
- data/schemas/tlc/1.0.9/commands/command_requests.json +1 -0
- data/schemas/tlc/1.0.9/commands/command_responses.json +1 -0
- data/schemas/tlc/1.0.9/commands/commands.json +1 -0
- data/schemas/tlc/1.0.9/rsmp.json +1 -0
- data/schemas/tlc/1.0.9/statuses/S0001.json +78 -124
- data/schemas/tlc/1.0.9/statuses/S0002.json +29 -48
- data/schemas/tlc/1.0.9/statuses/S0003.json +44 -66
- data/schemas/tlc/1.0.9/statuses/S0004.json +44 -66
- data/schemas/tlc/1.0.9/statuses/S0005.json +29 -54
- data/schemas/tlc/1.0.9/statuses/S0006.json +44 -78
- data/schemas/tlc/1.0.9/statuses/S0007.json +44 -78
- data/schemas/tlc/1.0.9/statuses/S0008.json +44 -78
- data/schemas/tlc/1.0.9/statuses/S0009.json +44 -78
- data/schemas/tlc/1.0.9/statuses/S0010.json +44 -78
- data/schemas/tlc/1.0.9/statuses/S0011.json +44 -78
- data/schemas/tlc/1.0.9/statuses/S0012.json +44 -78
- data/schemas/tlc/1.0.9/statuses/S0013.json +44 -78
- data/schemas/tlc/1.0.9/statuses/S0014.json +29 -54
- data/schemas/tlc/1.0.9/statuses/S0015.json +29 -54
- data/schemas/tlc/1.0.9/statuses/S0016.json +29 -54
- data/schemas/tlc/1.0.9/statuses/S0017.json +29 -54
- data/schemas/tlc/1.0.9/statuses/S0018.json +29 -54
- data/schemas/tlc/1.0.9/statuses/S0019.json +29 -54
- data/schemas/tlc/1.0.9/statuses/S0020.json +44 -78
- data/schemas/tlc/1.0.9/statuses/S0021.json +30 -49
- data/schemas/tlc/1.0.9/statuses/S0091.json +47 -69
- data/schemas/tlc/1.0.9/statuses/S0092.json +47 -69
- data/schemas/tlc/1.0.9/statuses/S0095.json +29 -48
- data/schemas/tlc/1.0.9/statuses/S0096.json +110 -180
- data/schemas/tlc/1.0.9/statuses/S0201.json +44 -78
- data/schemas/tlc/1.0.9/statuses/S0202.json +44 -78
- data/schemas/tlc/1.0.9/statuses/S0203.json +44 -78
- data/schemas/tlc/1.0.9/statuses/S0204.json +178 -284
- data/schemas/tlc/1.0.9/statuses/statuses.json +1 -0
- data/schemas/tlc/1.1.0/alarms/A0001.json +1 -0
- data/schemas/tlc/1.1.0/alarms/A0002.json +1 -0
- data/schemas/tlc/1.1.0/alarms/A0003.json +1 -0
- data/schemas/tlc/1.1.0/alarms/A0004.json +1 -0
- data/schemas/tlc/1.1.0/alarms/A0005.json +1 -0
- data/schemas/tlc/1.1.0/alarms/A0006.json +1 -0
- data/schemas/tlc/1.1.0/alarms/A0007.json +19 -44
- data/schemas/tlc/1.1.0/alarms/A0008.json +15 -46
- data/schemas/tlc/1.1.0/alarms/A0009.json +1 -0
- data/schemas/tlc/1.1.0/alarms/A0010.json +1 -0
- data/schemas/tlc/1.1.0/alarms/A0101.json +1 -0
- data/schemas/tlc/1.1.0/alarms/A0201.json +20 -45
- data/schemas/tlc/1.1.0/alarms/A0202.json +20 -45
- data/schemas/tlc/1.1.0/alarms/A0301.json +70 -110
- data/schemas/tlc/1.1.0/alarms/A0302.json +93 -136
- data/schemas/tlc/1.1.0/alarms/A0303.json +70 -110
- data/schemas/tlc/1.1.0/alarms/A0304.json +93 -136
- data/schemas/tlc/1.1.0/alarms/alarms.json +1 -0
- data/schemas/tlc/1.1.0/commands/M0001.json +72 -118
- data/schemas/tlc/1.1.0/commands/M0002.json +49 -92
- data/schemas/tlc/1.1.0/commands/M0003.json +49 -92
- data/schemas/tlc/1.1.0/commands/M0004.json +32 -66
- data/schemas/tlc/1.1.0/commands/M0005.json +49 -92
- data/schemas/tlc/1.1.0/commands/M0006.json +49 -92
- data/schemas/tlc/1.1.0/commands/M0007.json +32 -66
- data/schemas/tlc/1.1.0/commands/M0008.json +49 -92
- data/schemas/tlc/1.1.0/commands/M0010.json +32 -66
- data/schemas/tlc/1.1.0/commands/M0011.json +32 -66
- data/schemas/tlc/1.1.0/commands/M0012.json +32 -60
- data/schemas/tlc/1.1.0/commands/M0013.json +32 -60
- data/schemas/tlc/1.1.0/commands/M0014.json +49 -86
- data/schemas/tlc/1.1.0/commands/M0015.json +49 -92
- data/schemas/tlc/1.1.0/commands/M0016.json +32 -60
- data/schemas/tlc/1.1.0/commands/M0017.json +32 -60
- data/schemas/tlc/1.1.0/commands/M0018.json +49 -92
- data/schemas/tlc/1.1.0/commands/M0019.json +67 -119
- data/schemas/tlc/1.1.0/commands/M0020.json +67 -119
- data/schemas/tlc/1.1.0/commands/M0021.json +32 -60
- data/schemas/tlc/1.1.0/commands/M0022.json +227 -333
- data/schemas/tlc/1.1.0/commands/M0023.json +32 -66
- data/schemas/tlc/1.1.0/commands/M0103.json +52 -83
- data/schemas/tlc/1.1.0/commands/M0104.json +121 -200
- data/schemas/tlc/1.1.0/commands/command_requests.json +1 -0
- data/schemas/tlc/1.1.0/commands/command_responses.json +1 -0
- data/schemas/tlc/1.1.0/commands/commands.json +1 -0
- data/schemas/tlc/1.1.0/rsmp.json +1 -0
- data/schemas/tlc/1.1.0/statuses/S0001.json +78 -124
- data/schemas/tlc/1.1.0/statuses/S0002.json +29 -48
- data/schemas/tlc/1.1.0/statuses/S0003.json +44 -66
- data/schemas/tlc/1.1.0/statuses/S0004.json +44 -66
- data/schemas/tlc/1.1.0/statuses/S0005.json +29 -54
- data/schemas/tlc/1.1.0/statuses/S0006.json +44 -78
- data/schemas/tlc/1.1.0/statuses/S0007.json +62 -105
- data/schemas/tlc/1.1.0/statuses/S0008.json +62 -105
- data/schemas/tlc/1.1.0/statuses/S0009.json +62 -105
- data/schemas/tlc/1.1.0/statuses/S0010.json +62 -105
- data/schemas/tlc/1.1.0/statuses/S0011.json +62 -105
- data/schemas/tlc/1.1.0/statuses/S0012.json +62 -105
- data/schemas/tlc/1.1.0/statuses/S0013.json +44 -78
- data/schemas/tlc/1.1.0/statuses/S0014.json +52 -80
- data/schemas/tlc/1.1.0/statuses/S0015.json +52 -80
- data/schemas/tlc/1.1.0/statuses/S0016.json +29 -54
- data/schemas/tlc/1.1.0/statuses/S0017.json +29 -54
- data/schemas/tlc/1.1.0/statuses/S0018.json +29 -54
- data/schemas/tlc/1.1.0/statuses/S0019.json +29 -54
- data/schemas/tlc/1.1.0/statuses/S0020.json +44 -78
- data/schemas/tlc/1.1.0/statuses/S0021.json +30 -49
- data/schemas/tlc/1.1.0/statuses/S0022.json +29 -48
- data/schemas/tlc/1.1.0/statuses/S0023.json +30 -49
- data/schemas/tlc/1.1.0/statuses/S0024.json +30 -49
- data/schemas/tlc/1.1.0/statuses/S0025.json +153 -241
- data/schemas/tlc/1.1.0/statuses/S0026.json +29 -48
- data/schemas/tlc/1.1.0/statuses/S0027.json +29 -48
- data/schemas/tlc/1.1.0/statuses/S0028.json +29 -48
- data/schemas/tlc/1.1.0/statuses/S0029.json +29 -48
- data/schemas/tlc/1.1.0/statuses/S0030.json +29 -48
- data/schemas/tlc/1.1.0/statuses/S0031.json +29 -48
- data/schemas/tlc/1.1.0/statuses/S0032.json +61 -104
- data/schemas/tlc/1.1.0/statuses/S0033.json +67 -104
- data/schemas/tlc/1.1.0/statuses/S0034.json +29 -54
- data/schemas/tlc/1.1.0/statuses/S0091.json +33 -58
- data/schemas/tlc/1.1.0/statuses/S0092.json +33 -58
- data/schemas/tlc/1.1.0/statuses/S0095.json +29 -48
- data/schemas/tlc/1.1.0/statuses/S0096.json +110 -180
- data/schemas/tlc/1.1.0/statuses/S0097.json +44 -72
- data/schemas/tlc/1.1.0/statuses/S0098.json +61 -92
- data/schemas/tlc/1.1.0/statuses/S0201.json +44 -78
- data/schemas/tlc/1.1.0/statuses/S0202.json +44 -78
- data/schemas/tlc/1.1.0/statuses/S0203.json +44 -78
- data/schemas/tlc/1.1.0/statuses/S0204.json +178 -284
- data/schemas/tlc/1.1.0/statuses/S0205.json +44 -78
- data/schemas/tlc/1.1.0/statuses/S0206.json +44 -78
- data/schemas/tlc/1.1.0/statuses/S0207.json +44 -78
- data/schemas/tlc/1.1.0/statuses/S0208.json +178 -284
- data/schemas/tlc/1.1.0/statuses/statuses.json +1 -0
- data/schemas/tlc/1.2.0/alarms/A0001.json +1 -0
- data/schemas/tlc/1.2.0/alarms/A0002.json +1 -0
- data/schemas/tlc/1.2.0/alarms/A0003.json +1 -0
- data/schemas/tlc/1.2.0/alarms/A0004.json +1 -0
- data/schemas/tlc/1.2.0/alarms/A0005.json +1 -0
- data/schemas/tlc/1.2.0/alarms/A0006.json +1 -0
- data/schemas/tlc/1.2.0/alarms/A0007.json +19 -44
- data/schemas/tlc/1.2.0/alarms/A0008.json +15 -46
- data/schemas/tlc/1.2.0/alarms/A0009.json +1 -0
- data/schemas/tlc/1.2.0/alarms/A0010.json +1 -0
- data/schemas/tlc/1.2.0/alarms/A0101.json +1 -0
- data/schemas/tlc/1.2.0/alarms/A0201.json +20 -45
- data/schemas/tlc/1.2.0/alarms/A0202.json +20 -45
- data/schemas/tlc/1.2.0/alarms/A0301.json +70 -110
- data/schemas/tlc/1.2.0/alarms/A0302.json +93 -136
- data/schemas/tlc/1.2.0/alarms/A0303.json +70 -110
- data/schemas/tlc/1.2.0/alarms/A0304.json +93 -136
- data/schemas/tlc/1.2.0/alarms/alarms.json +1 -0
- data/schemas/tlc/1.2.0/commands/M0001.json +72 -118
- data/schemas/tlc/1.2.0/commands/M0002.json +49 -92
- data/schemas/tlc/1.2.0/commands/M0003.json +49 -92
- data/schemas/tlc/1.2.0/commands/M0004.json +32 -66
- data/schemas/tlc/1.2.0/commands/M0005.json +49 -92
- data/schemas/tlc/1.2.0/commands/M0006.json +49 -92
- data/schemas/tlc/1.2.0/commands/M0007.json +32 -66
- data/schemas/tlc/1.2.0/commands/M0008.json +49 -92
- data/schemas/tlc/1.2.0/commands/M0010.json +32 -66
- data/schemas/tlc/1.2.0/commands/M0011.json +32 -66
- data/schemas/tlc/1.2.0/commands/M0012.json +32 -60
- data/schemas/tlc/1.2.0/commands/M0013.json +32 -60
- data/schemas/tlc/1.2.0/commands/M0014.json +49 -86
- data/schemas/tlc/1.2.0/commands/M0015.json +49 -92
- data/schemas/tlc/1.2.0/commands/M0016.json +32 -60
- data/schemas/tlc/1.2.0/commands/M0017.json +32 -60
- data/schemas/tlc/1.2.0/commands/M0018.json +49 -92
- data/schemas/tlc/1.2.0/commands/M0019.json +67 -119
- data/schemas/tlc/1.2.0/commands/M0020.json +67 -119
- data/schemas/tlc/1.2.0/commands/M0021.json +32 -60
- data/schemas/tlc/1.2.0/commands/M0022.json +227 -333
- data/schemas/tlc/1.2.0/commands/M0023.json +32 -66
- data/schemas/tlc/1.2.0/commands/M0103.json +52 -83
- data/schemas/tlc/1.2.0/commands/M0104.json +121 -200
- data/schemas/tlc/1.2.0/commands/command_requests.json +1 -0
- data/schemas/tlc/1.2.0/commands/command_responses.json +1 -0
- data/schemas/tlc/1.2.0/commands/commands.json +1 -0
- data/schemas/tlc/1.2.0/rsmp.json +1 -0
- data/schemas/tlc/1.2.0/statuses/S0001.json +78 -124
- data/schemas/tlc/1.2.0/statuses/S0002.json +29 -48
- data/schemas/tlc/1.2.0/statuses/S0003.json +29 -48
- data/schemas/tlc/1.2.0/statuses/S0004.json +29 -48
- data/schemas/tlc/1.2.0/statuses/S0005.json +59 -99
- data/schemas/tlc/1.2.0/statuses/S0006.json +44 -78
- data/schemas/tlc/1.2.0/statuses/S0007.json +62 -105
- data/schemas/tlc/1.2.0/statuses/S0008.json +62 -105
- data/schemas/tlc/1.2.0/statuses/S0009.json +62 -105
- data/schemas/tlc/1.2.0/statuses/S0010.json +62 -105
- data/schemas/tlc/1.2.0/statuses/S0011.json +62 -105
- data/schemas/tlc/1.2.0/statuses/S0012.json +62 -105
- data/schemas/tlc/1.2.0/statuses/S0013.json +44 -78
- data/schemas/tlc/1.2.0/statuses/S0014.json +52 -80
- data/schemas/tlc/1.2.0/statuses/S0015.json +52 -80
- data/schemas/tlc/1.2.0/statuses/S0016.json +29 -54
- data/schemas/tlc/1.2.0/statuses/S0017.json +29 -54
- data/schemas/tlc/1.2.0/statuses/S0019.json +29 -54
- data/schemas/tlc/1.2.0/statuses/S0020.json +44 -78
- data/schemas/tlc/1.2.0/statuses/S0021.json +30 -49
- data/schemas/tlc/1.2.0/statuses/S0022.json +29 -48
- data/schemas/tlc/1.2.0/statuses/S0023.json +30 -49
- data/schemas/tlc/1.2.0/statuses/S0024.json +30 -49
- data/schemas/tlc/1.2.0/statuses/S0025.json +153 -241
- data/schemas/tlc/1.2.0/statuses/S0026.json +29 -48
- data/schemas/tlc/1.2.0/statuses/S0027.json +29 -48
- data/schemas/tlc/1.2.0/statuses/S0028.json +29 -48
- data/schemas/tlc/1.2.0/statuses/S0029.json +29 -48
- data/schemas/tlc/1.2.0/statuses/S0030.json +29 -48
- data/schemas/tlc/1.2.0/statuses/S0031.json +29 -48
- data/schemas/tlc/1.2.0/statuses/S0032.json +61 -104
- data/schemas/tlc/1.2.0/statuses/S0033.json +67 -104
- data/schemas/tlc/1.2.0/statuses/S0034.json +29 -54
- data/schemas/tlc/1.2.0/statuses/S0035.json +39 -64
- data/schemas/tlc/1.2.0/statuses/S0091.json +33 -58
- data/schemas/tlc/1.2.0/statuses/S0092.json +33 -58
- data/schemas/tlc/1.2.0/statuses/S0095.json +29 -48
- data/schemas/tlc/1.2.0/statuses/S0096.json +110 -180
- data/schemas/tlc/1.2.0/statuses/S0097.json +44 -72
- data/schemas/tlc/1.2.0/statuses/S0098.json +61 -92
- data/schemas/tlc/1.2.0/statuses/S0201.json +44 -78
- data/schemas/tlc/1.2.0/statuses/S0202.json +44 -78
- data/schemas/tlc/1.2.0/statuses/S0203.json +44 -78
- data/schemas/tlc/1.2.0/statuses/S0204.json +178 -284
- data/schemas/tlc/1.2.0/statuses/S0205.json +44 -78
- data/schemas/tlc/1.2.0/statuses/S0206.json +44 -78
- data/schemas/tlc/1.2.0/statuses/S0207.json +44 -78
- data/schemas/tlc/1.2.0/statuses/S0208.json +178 -284
- data/schemas/tlc/1.2.0/statuses/statuses.json +1 -0
- data/schemas/tlc/1.2.1/alarms/A0001.json +1 -0
- data/schemas/tlc/1.2.1/alarms/A0002.json +1 -0
- data/schemas/tlc/1.2.1/alarms/A0003.json +1 -0
- data/schemas/tlc/1.2.1/alarms/A0004.json +1 -0
- data/schemas/tlc/1.2.1/alarms/A0005.json +1 -0
- data/schemas/tlc/1.2.1/alarms/A0006.json +1 -0
- data/schemas/tlc/1.2.1/alarms/A0007.json +19 -44
- data/schemas/tlc/1.2.1/alarms/A0008.json +15 -46
- data/schemas/tlc/1.2.1/alarms/A0009.json +1 -0
- data/schemas/tlc/1.2.1/alarms/A0010.json +1 -0
- data/schemas/tlc/1.2.1/alarms/A0101.json +1 -0
- data/schemas/tlc/1.2.1/alarms/A0201.json +20 -45
- data/schemas/tlc/1.2.1/alarms/A0202.json +20 -45
- data/schemas/tlc/1.2.1/alarms/A0301.json +70 -110
- data/schemas/tlc/1.2.1/alarms/A0302.json +93 -136
- data/schemas/tlc/1.2.1/alarms/A0303.json +70 -110
- data/schemas/tlc/1.2.1/alarms/A0304.json +93 -136
- data/schemas/tlc/1.2.1/alarms/alarms.json +1 -0
- data/schemas/tlc/1.2.1/commands/M0001.json +72 -118
- data/schemas/tlc/1.2.1/commands/M0002.json +49 -92
- data/schemas/tlc/1.2.1/commands/M0003.json +49 -92
- data/schemas/tlc/1.2.1/commands/M0004.json +32 -66
- data/schemas/tlc/1.2.1/commands/M0005.json +49 -92
- data/schemas/tlc/1.2.1/commands/M0006.json +49 -92
- data/schemas/tlc/1.2.1/commands/M0007.json +32 -66
- data/schemas/tlc/1.2.1/commands/M0008.json +49 -92
- data/schemas/tlc/1.2.1/commands/M0010.json +32 -66
- data/schemas/tlc/1.2.1/commands/M0011.json +32 -66
- data/schemas/tlc/1.2.1/commands/M0012.json +32 -60
- data/schemas/tlc/1.2.1/commands/M0013.json +32 -60
- data/schemas/tlc/1.2.1/commands/M0014.json +49 -86
- data/schemas/tlc/1.2.1/commands/M0015.json +49 -92
- data/schemas/tlc/1.2.1/commands/M0016.json +32 -60
- data/schemas/tlc/1.2.1/commands/M0017.json +32 -60
- data/schemas/tlc/1.2.1/commands/M0018.json +49 -92
- data/schemas/tlc/1.2.1/commands/M0019.json +67 -119
- data/schemas/tlc/1.2.1/commands/M0020.json +67 -119
- data/schemas/tlc/1.2.1/commands/M0021.json +32 -60
- data/schemas/tlc/1.2.1/commands/M0022.json +227 -333
- data/schemas/tlc/1.2.1/commands/M0023.json +32 -66
- data/schemas/tlc/1.2.1/commands/M0103.json +52 -83
- data/schemas/tlc/1.2.1/commands/M0104.json +121 -200
- data/schemas/tlc/1.2.1/commands/command_requests.json +1 -0
- data/schemas/tlc/1.2.1/commands/command_responses.json +1 -0
- data/schemas/tlc/1.2.1/commands/commands.json +1 -0
- data/schemas/tlc/1.2.1/rsmp.json +1 -0
- data/schemas/tlc/1.2.1/statuses/S0001.json +78 -124
- data/schemas/tlc/1.2.1/statuses/S0002.json +29 -48
- data/schemas/tlc/1.2.1/statuses/S0003.json +29 -48
- data/schemas/tlc/1.2.1/statuses/S0004.json +29 -48
- data/schemas/tlc/1.2.1/statuses/S0005.json +59 -99
- data/schemas/tlc/1.2.1/statuses/S0006.json +44 -78
- data/schemas/tlc/1.2.1/statuses/S0007.json +62 -105
- data/schemas/tlc/1.2.1/statuses/S0008.json +62 -105
- data/schemas/tlc/1.2.1/statuses/S0009.json +62 -105
- data/schemas/tlc/1.2.1/statuses/S0010.json +60 -105
- data/schemas/tlc/1.2.1/statuses/S0011.json +62 -105
- data/schemas/tlc/1.2.1/statuses/S0012.json +62 -105
- data/schemas/tlc/1.2.1/statuses/S0013.json +44 -78
- data/schemas/tlc/1.2.1/statuses/S0014.json +52 -80
- data/schemas/tlc/1.2.1/statuses/S0015.json +52 -80
- data/schemas/tlc/1.2.1/statuses/S0016.json +29 -54
- data/schemas/tlc/1.2.1/statuses/S0017.json +29 -54
- data/schemas/tlc/1.2.1/statuses/S0019.json +29 -54
- data/schemas/tlc/1.2.1/statuses/S0020.json +44 -78
- data/schemas/tlc/1.2.1/statuses/S0021.json +30 -49
- data/schemas/tlc/1.2.1/statuses/S0022.json +29 -48
- data/schemas/tlc/1.2.1/statuses/S0023.json +30 -49
- data/schemas/tlc/1.2.1/statuses/S0024.json +30 -49
- data/schemas/tlc/1.2.1/statuses/S0025.json +153 -241
- data/schemas/tlc/1.2.1/statuses/S0026.json +29 -48
- data/schemas/tlc/1.2.1/statuses/S0027.json +29 -48
- data/schemas/tlc/1.2.1/statuses/S0028.json +29 -48
- data/schemas/tlc/1.2.1/statuses/S0029.json +29 -48
- data/schemas/tlc/1.2.1/statuses/S0030.json +29 -48
- data/schemas/tlc/1.2.1/statuses/S0031.json +29 -48
- data/schemas/tlc/1.2.1/statuses/S0032.json +61 -104
- data/schemas/tlc/1.2.1/statuses/S0033.json +67 -104
- data/schemas/tlc/1.2.1/statuses/S0034.json +29 -54
- data/schemas/tlc/1.2.1/statuses/S0035.json +39 -64
- data/schemas/tlc/1.2.1/statuses/S0091.json +33 -58
- data/schemas/tlc/1.2.1/statuses/S0092.json +33 -58
- data/schemas/tlc/1.2.1/statuses/S0095.json +29 -48
- data/schemas/tlc/1.2.1/statuses/S0096.json +110 -180
- data/schemas/tlc/1.2.1/statuses/S0097.json +44 -72
- data/schemas/tlc/1.2.1/statuses/S0098.json +61 -92
- data/schemas/tlc/1.2.1/statuses/S0201.json +44 -78
- data/schemas/tlc/1.2.1/statuses/S0202.json +44 -78
- data/schemas/tlc/1.2.1/statuses/S0203.json +44 -78
- data/schemas/tlc/1.2.1/statuses/S0204.json +178 -284
- data/schemas/tlc/1.2.1/statuses/S0205.json +44 -78
- data/schemas/tlc/1.2.1/statuses/S0206.json +44 -78
- data/schemas/tlc/1.2.1/statuses/S0207.json +44 -78
- data/schemas/tlc/1.2.1/statuses/S0208.json +178 -284
- data/schemas/tlc/1.2.1/statuses/statuses.json +1 -0
- data/schemas/tlc/defs/guards.json +24 -0
- metadata +21 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 86686f176a4c15c90f569c0d60dbeafb56a27c2fe0d06f379791f2314bf1884f
|
4
|
+
data.tar.gz: 5e33a0a3e94483f5fe496168b3de4c704e8ea566f32f217cce4db15829b654c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
data/.tool-versions
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby 3.
|
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.
|
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.
|
12
|
-
diff-lcs (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.
|
21
|
-
rspec (3.13.
|
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.
|
25
|
+
rspec-core (3.13.5)
|
26
26
|
rspec-support (~> 3.13.0)
|
27
|
-
rspec-expectations (3.13.
|
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.
|
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.
|
34
|
-
simpleidn (0.2.
|
35
|
-
|
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.
|
47
|
+
2.7.2
|
data/examples/validate.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
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
|
-
#
|
22
|
-
|
23
|
-
|
24
|
-
|
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
|
-
|
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
|
-
"
|
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
|
-
#
|
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
|
-
|
79
|
-
|
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
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
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
|
-
|
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 = {
|
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 = {
|
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 = {
|
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 = {
|
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
|
-
|
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'],
|
data/lib/rsmp_schema/version.rb
CHANGED
data/lib/rsmp_schema.rb
CHANGED
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
|
13
|
-
spec.description = "Validate RSMP message
|
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
|
+
}
|