bbfmodels 0.2.1__tar.gz → 0.4.0__tar.gz

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 (1067) hide show
  1. bbfmodels-0.4.0/.github/workflows/announce-release.yml +70 -0
  2. bbfmodels-0.4.0/.release-please-manifest.json +3 -0
  3. bbfmodels-0.4.0/CHANGELOG.md +39 -0
  4. bbfmodels-0.4.0/PKG-INFO +103 -0
  5. bbfmodels-0.4.0/README.md +78 -0
  6. bbfmodels-0.4.0/context/README.md +25 -0
  7. bbfmodels-0.4.0/context/decisions/0011-typed-paths-are-a-stub-over-the-schema.md +44 -0
  8. bbfmodels-0.4.0/context/decisions/0012-commands-and-events-have-argument-paths.md +47 -0
  9. bbfmodels-0.4.0/docs/guides/models.md +178 -0
  10. bbfmodels-0.4.0/docs/guides/paths.md +104 -0
  11. bbfmodels-0.4.0/docs/guides/quickstart.md +69 -0
  12. bbfmodels-0.4.0/docs/guides/runtime.md +126 -0
  13. bbfmodels-0.4.0/docs/index.md +51 -0
  14. bbfmodels-0.4.0/hooks/announce.py +102 -0
  15. bbfmodels-0.4.0/hooks/test_announce.py +89 -0
  16. bbfmodels-0.4.0/mkdocs.yml +57 -0
  17. bbfmodels-0.4.0/pyproject.toml +63 -0
  18. bbfmodels-0.4.0/release-notes/0.3.0.md +4 -0
  19. bbfmodels-0.4.0/release-notes/0.4.0.md +5 -0
  20. bbfmodels-0.4.0/src/bbfmodels/__init__.py +16 -0
  21. bbfmodels-0.4.0/src/bbfmodels/codec.py +255 -0
  22. bbfmodels-0.4.0/src/bbfmodels/generate.py +457 -0
  23. bbfmodels-0.4.0/src/bbfmodels/paths.py +198 -0
  24. bbfmodels-0.4.0/src/bbfmodels/schema.py +190 -0
  25. bbfmodels-0.4.0/src/bbfmodels/tr098/__init__.py +20 -0
  26. bbfmodels-0.4.0/src/bbfmodels/tr098/bulkdata.py +58 -0
  27. bbfmodels-0.4.0/src/bbfmodels/tr098/capabilities.py +30 -0
  28. bbfmodels-0.4.0/src/bbfmodels/tr098/captiveportal.py +26 -0
  29. bbfmodels-0.4.0/src/bbfmodels/tr098/deviceconfig.py +24 -0
  30. bbfmodels-0.4.0/src/bbfmodels/tr098/deviceinfo.py +174 -0
  31. bbfmodels-0.4.0/src/bbfmodels/tr098/dlna.py +36 -0
  32. bbfmodels-0.4.0/src/bbfmodels/tr098/dns.py +58 -0
  33. bbfmodels-0.4.0/src/bbfmodels/tr098/downloadavailability.py +50 -0
  34. bbfmodels-0.4.0/src/bbfmodels/tr098/downloaddiagnostics.py +35 -0
  35. bbfmodels-0.4.0/src/bbfmodels/tr098/fap.py +324 -0
  36. bbfmodels-0.4.0/src/bbfmodels/tr098/faultmgmt.py +104 -0
  37. bbfmodels-0.4.0/src/bbfmodels/tr098/firewall.py +26 -0
  38. bbfmodels-0.4.0/src/bbfmodels/tr098/internetgatewaydevice.py +105 -0
  39. bbfmodels-0.4.0/src/bbfmodels/tr098/ippingdiagnostics.py +35 -0
  40. bbfmodels-0.4.0/src/bbfmodels/tr098/lanconfigsecurity.py +23 -0
  41. bbfmodels-0.4.0/src/bbfmodels/tr098/landevice.py +391 -0
  42. bbfmodels-0.4.0/src/bbfmodels/tr098/laninterfaces.py +46 -0
  43. bbfmodels-0.4.0/src/bbfmodels/tr098/layer2bridging.py +132 -0
  44. bbfmodels-0.4.0/src/bbfmodels/tr098/layer3forwarding.py +44 -0
  45. bbfmodels-0.4.0/src/bbfmodels/tr098/managementserver.py +154 -0
  46. bbfmodels-0.4.0/src/bbfmodels/tr098/nslookupdiagnostics.py +42 -0
  47. bbfmodels-0.4.0/src/bbfmodels/tr098/paths.py +13 -0
  48. bbfmodels-0.4.0/src/bbfmodels/tr098/paths.pyi +2387 -0
  49. bbfmodels-0.4.0/src/bbfmodels/tr098/periodicstatistics.py +62 -0
  50. bbfmodels-0.4.0/src/bbfmodels/tr098/queuemanagement.py +233 -0
  51. bbfmodels-0.4.0/src/bbfmodels/tr098/security.py +39 -0
  52. bbfmodels-0.4.0/src/bbfmodels/tr098/selftestdiagnostics.py +24 -0
  53. bbfmodels-0.4.0/src/bbfmodels/tr098/services.py +22 -0
  54. bbfmodels-0.4.0/src/bbfmodels/tr098/smartcardreader.py +42 -0
  55. bbfmodels-0.4.0/src/bbfmodels/tr098/softwaremodules.py +103 -0
  56. bbfmodels-0.4.0/src/bbfmodels/tr098/time.py +36 -0
  57. bbfmodels-0.4.0/src/bbfmodels/tr098/traceroutediagnostics.py +42 -0
  58. bbfmodels-0.4.0/src/bbfmodels/tr098/udpechoconfig.py +35 -0
  59. bbfmodels-0.4.0/src/bbfmodels/tr098/uploaddiagnostics.py +35 -0
  60. bbfmodels-0.4.0/src/bbfmodels/tr098/upnp.py +161 -0
  61. bbfmodels-0.4.0/src/bbfmodels/tr098/usbhosts.py +79 -0
  62. bbfmodels-0.4.0/src/bbfmodels/tr098/user.py +28 -0
  63. bbfmodels-0.4.0/src/bbfmodels/tr098/userinterface.py +71 -0
  64. bbfmodels-0.4.0/src/bbfmodels/tr098/wandevice.py +657 -0
  65. bbfmodels-0.4.0/src/bbfmodels/tr098/xmpp.py +70 -0
  66. bbfmodels-0.4.0/src/bbfmodels/tr104_1/__init__.py +20 -0
  67. bbfmodels-0.4.0/src/bbfmodels/tr104_1/capabilities.py +98 -0
  68. bbfmodels-0.4.0/src/bbfmodels/tr104_1/paths.py +13 -0
  69. bbfmodels-0.4.0/src/bbfmodels/tr104_1/paths.pyi +486 -0
  70. bbfmodels-0.4.0/src/bbfmodels/tr104_1/phyinterface.py +35 -0
  71. bbfmodels-0.4.0/src/bbfmodels/tr104_1/voiceprofile.py +515 -0
  72. bbfmodels-0.4.0/src/bbfmodels/tr104_1/voiceservice.py +34 -0
  73. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/__init__.py +20 -0
  74. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/callcontrol.py +340 -0
  75. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/calllog.py +206 -0
  76. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/capabilities.py +124 -0
  77. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/clocksynchronization.py +36 -0
  78. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/codecprofile.py +27 -0
  79. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/dect.py +85 -0
  80. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/h323.py +64 -0
  81. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/interwork.py +73 -0
  82. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/isdn.py +72 -0
  83. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/mgcp.py +68 -0
  84. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/paths.py +13 -0
  85. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/paths.pyi +1195 -0
  86. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/pots.py +108 -0
  87. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/reservedports.py +24 -0
  88. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/sip.py +253 -0
  89. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/terminal.py +106 -0
  90. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/tone.py +78 -0
  91. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/trunk.py +35 -0
  92. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/voiceservice.py +67 -0
  93. bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/voipprofile.py +90 -0
  94. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/__init__.py +20 -0
  95. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/callcontrol.py +340 -0
  96. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/calllog.py +206 -0
  97. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/capabilities.py +124 -0
  98. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/clocksynchronization.py +36 -0
  99. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/codecprofile.py +27 -0
  100. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/dect.py +85 -0
  101. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/h323.py +64 -0
  102. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/interwork.py +73 -0
  103. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/isdn.py +72 -0
  104. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/mgcp.py +68 -0
  105. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/paths.py +13 -0
  106. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/paths.pyi +1180 -0
  107. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/pots.py +118 -0
  108. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/reservedports.py +24 -0
  109. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/sip.py +253 -0
  110. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/terminal.py +111 -0
  111. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/tone.py +78 -0
  112. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/trunk.py +35 -0
  113. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/voiceservice.py +67 -0
  114. bbfmodels-0.4.0/src/bbfmodels/tr104_usp/voipprofile.py +90 -0
  115. bbfmodels-0.4.0/src/bbfmodels/tr135_cwmp/__init__.py +20 -0
  116. bbfmodels-0.4.0/src/bbfmodels/tr135_cwmp/applications.py +89 -0
  117. bbfmodels-0.4.0/src/bbfmodels/tr135_cwmp/avplayers.py +45 -0
  118. bbfmodels-0.4.0/src/bbfmodels/tr135_cwmp/avstreams.py +41 -0
  119. bbfmodels-0.4.0/src/bbfmodels/tr135_cwmp/capabilities.py +218 -0
  120. bbfmodels-0.4.0/src/bbfmodels/tr135_cwmp/components.py +440 -0
  121. bbfmodels-0.4.0/src/bbfmodels/tr135_cwmp/paths.py +13 -0
  122. bbfmodels-0.4.0/src/bbfmodels/tr135_cwmp/paths.pyi +823 -0
  123. bbfmodels-0.4.0/src/bbfmodels/tr135_cwmp/servicemonitoring.py +368 -0
  124. bbfmodels-0.4.0/src/bbfmodels/tr135_cwmp/stbservice.py +40 -0
  125. bbfmodels-0.4.0/src/bbfmodels/tr135_usp/__init__.py +20 -0
  126. bbfmodels-0.4.0/src/bbfmodels/tr135_usp/applications.py +119 -0
  127. bbfmodels-0.4.0/src/bbfmodels/tr135_usp/avplayers.py +55 -0
  128. bbfmodels-0.4.0/src/bbfmodels/tr135_usp/avstreams.py +41 -0
  129. bbfmodels-0.4.0/src/bbfmodels/tr135_usp/capabilities.py +218 -0
  130. bbfmodels-0.4.0/src/bbfmodels/tr135_usp/components.py +478 -0
  131. bbfmodels-0.4.0/src/bbfmodels/tr135_usp/paths.py +13 -0
  132. bbfmodels-0.4.0/src/bbfmodels/tr135_usp/paths.pyi +808 -0
  133. bbfmodels-0.4.0/src/bbfmodels/tr135_usp/servicemonitoring.py +398 -0
  134. bbfmodels-0.4.0/src/bbfmodels/tr135_usp/stbservice.py +40 -0
  135. bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/__init__.py +20 -0
  136. bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/capabilities.py +31 -0
  137. bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/ftpserver.py +36 -0
  138. bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/httpserver.py +29 -0
  139. bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/httpsserver.py +29 -0
  140. bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/logicalvolume.py +77 -0
  141. bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/netinfo.py +24 -0
  142. bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/networkserver.py +26 -0
  143. bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/paths.py +13 -0
  144. bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/paths.pyi +190 -0
  145. bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/physicalmedium.py +56 -0
  146. bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/sftpserver.py +27 -0
  147. bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/storagearray.py +29 -0
  148. bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/storageservice.py +57 -0
  149. bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/useraccount.py +29 -0
  150. bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/usergroup.py +25 -0
  151. bbfmodels-0.4.0/src/bbfmodels/tr140_usp/__init__.py +20 -0
  152. bbfmodels-0.4.0/src/bbfmodels/tr140_usp/capabilities.py +31 -0
  153. bbfmodels-0.4.0/src/bbfmodels/tr140_usp/ftpserver.py +36 -0
  154. bbfmodels-0.4.0/src/bbfmodels/tr140_usp/httpserver.py +29 -0
  155. bbfmodels-0.4.0/src/bbfmodels/tr140_usp/httpsserver.py +29 -0
  156. bbfmodels-0.4.0/src/bbfmodels/tr140_usp/logicalvolume.py +77 -0
  157. bbfmodels-0.4.0/src/bbfmodels/tr140_usp/netinfo.py +24 -0
  158. bbfmodels-0.4.0/src/bbfmodels/tr140_usp/networkserver.py +26 -0
  159. bbfmodels-0.4.0/src/bbfmodels/tr140_usp/paths.py +13 -0
  160. bbfmodels-0.4.0/src/bbfmodels/tr140_usp/paths.pyi +190 -0
  161. bbfmodels-0.4.0/src/bbfmodels/tr140_usp/physicalmedium.py +56 -0
  162. bbfmodels-0.4.0/src/bbfmodels/tr140_usp/sftpserver.py +27 -0
  163. bbfmodels-0.4.0/src/bbfmodels/tr140_usp/storagearray.py +29 -0
  164. bbfmodels-0.4.0/src/bbfmodels/tr140_usp/storageservice.py +57 -0
  165. bbfmodels-0.4.0/src/bbfmodels/tr140_usp/useraccount.py +29 -0
  166. bbfmodels-0.4.0/src/bbfmodels/tr140_usp/usergroup.py +25 -0
  167. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/__init__.py +20 -0
  168. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/atm.py +100 -0
  169. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/basapm.py +52 -0
  170. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/bridging.py +206 -0
  171. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/bulkdata.py +119 -0
  172. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/captiveportal.py +26 -0
  173. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/cellular.py +154 -0
  174. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/collectiondevice.py +37 -0
  175. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/connectionmonitoring.py +65 -0
  176. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/device.py +209 -0
  177. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/deviceinfo.py +371 -0
  178. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/dhcpv4.py +244 -0
  179. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/dhcpv6.py +241 -0
  180. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/dlna.py +36 -0
  181. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/dns.py +253 -0
  182. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/docsis.py +255 -0
  183. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/dsl.py +566 -0
  184. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/dslite.py +41 -0
  185. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/dynamicdns.py +69 -0
  186. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ethernet.py +238 -0
  187. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/etsim2m.py +186 -0
  188. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/fap.py +247 -0
  189. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/fast.py +195 -0
  190. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/faultmgmt.py +104 -0
  191. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/firewall.py +316 -0
  192. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/fwe.py +58 -0
  193. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/gatewayinfo.py +25 -0
  194. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ghn.py +223 -0
  195. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/gre.py +112 -0
  196. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/hardware.py +106 -0
  197. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/homeplug.py +90 -0
  198. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/hosts.py +103 -0
  199. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/hpna.py +232 -0
  200. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ieee1905.py +412 -0
  201. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ieee8021x.py +83 -0
  202. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/interfacestack.py +27 -0
  203. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ip.py +560 -0
  204. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ipsec.py +232 -0
  205. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ipv6rd.py +40 -0
  206. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/l2tpv3.py +120 -0
  207. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/lanconfigsecurity.py +23 -0
  208. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/leds.py +64 -0
  209. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/lldp.py +81 -0
  210. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/lmap.py +340 -0
  211. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/logical.py +142 -0
  212. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/managementserver.py +211 -0
  213. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/map.py +96 -0
  214. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/moca.py +372 -0
  215. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/mqtt.py +261 -0
  216. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/nat.py +115 -0
  217. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/neighbordiscovery.py +71 -0
  218. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/optical.py +60 -0
  219. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/packetcapturediagnostics.py +44 -0
  220. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/paths.py +13 -0
  221. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/paths.pyi +11041 -0
  222. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/pcp.py +138 -0
  223. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/pdu.py +101 -0
  224. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/periodicfiletransfer.py +111 -0
  225. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/periodicstatistics.py +64 -0
  226. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ppp.py +112 -0
  227. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ptm.py +59 -0
  228. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/qos.py +272 -0
  229. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/radsecproxy.py +100 -0
  230. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/routeradvertisement.py +64 -0
  231. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/routing.py +297 -0
  232. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/schedules.py +39 -0
  233. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/security.py +51 -0
  234. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/selftestdiagnostics.py +24 -0
  235. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/services.py +22 -0
  236. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/sessionmanagement.py +171 -0
  237. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/sfps.py +216 -0
  238. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/smartcardreaders.py +49 -0
  239. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/softwaremodules.py +250 -0
  240. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ssh.py +97 -0
  241. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/stomp.py +47 -0
  242. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/syslog.py +115 -0
  243. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/thread.py +202 -0
  244. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/time.py +113 -0
  245. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/trustedelements.py +61 -0
  246. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/unixdomainsockets.py +44 -0
  247. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/upa.py +128 -0
  248. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/upnp.py +171 -0
  249. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/usb.py +161 -0
  250. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/userinterface.py +128 -0
  251. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/users.py +87 -0
  252. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/uspagent.py +254 -0
  253. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/uspservices.py +44 -0
  254. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/vxlan.py +110 -0
  255. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/wifi.py +2307 -0
  256. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/wireguard.py +100 -0
  257. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/wwc.py +89 -0
  258. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/xmpp.py +71 -0
  259. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/xpon.py +283 -0
  260. bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/zigbee.py +250 -0
  261. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/__init__.py +20 -0
  262. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/atm.py +115 -0
  263. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/basapm.py +52 -0
  264. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/bridging.py +216 -0
  265. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/bulkdata.py +138 -0
  266. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/captiveportal.py +26 -0
  267. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/cellular.py +164 -0
  268. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/collectiondevice.py +38 -0
  269. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/connectionmonitoring.py +65 -0
  270. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/cwmpmanagementserver.py +23 -0
  271. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/device.py +321 -0
  272. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/deviceinfo.py +627 -0
  273. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/dhcpv4.py +285 -0
  274. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/dhcpv6.py +282 -0
  275. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/dlna.py +36 -0
  276. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/dns.py +278 -0
  277. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/docsis.py +285 -0
  278. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/dsl.py +616 -0
  279. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/dslite.py +41 -0
  280. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/dynamicdns.py +69 -0
  281. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ethernet.py +300 -0
  282. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/fap.py +257 -0
  283. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/fast.py +205 -0
  284. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/faultmgmt.py +104 -0
  285. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/firewall.py +316 -0
  286. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/fwe.py +68 -0
  287. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/gatewayinfo.py +51 -0
  288. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ghn.py +253 -0
  289. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/gre.py +122 -0
  290. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/hardware.py +152 -0
  291. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/homeplug.py +100 -0
  292. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/hosts.py +116 -0
  293. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/hpna.py +249 -0
  294. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ieee1905.py +412 -0
  295. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ieee8021x.py +113 -0
  296. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/interfacestack.py +27 -0
  297. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/iotcapability.py +304 -0
  298. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ip.py +622 -0
  299. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ipsec.py +232 -0
  300. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ipv6rd.py +40 -0
  301. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/l2tpv3.py +130 -0
  302. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/lanconfigsecurity.py +23 -0
  303. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/leds.py +64 -0
  304. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/lldp.py +81 -0
  305. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/lmap.py +340 -0
  306. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/localagent.py +588 -0
  307. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/logical.py +220 -0
  308. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/map.py +106 -0
  309. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/moca.py +545 -0
  310. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/mqtt.py +308 -0
  311. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/nat.py +115 -0
  312. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/neighbordiscovery.py +71 -0
  313. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/node.py +25 -0
  314. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/optical.py +70 -0
  315. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/paths.py +13 -0
  316. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/paths.pyi +10607 -0
  317. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/pcp.py +138 -0
  318. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/pdu.py +101 -0
  319. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/periodicfiletransfer.py +130 -0
  320. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/periodicstatistics.py +103 -0
  321. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ppp.py +132 -0
  322. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/proxieddevice.py +41 -0
  323. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ptm.py +69 -0
  324. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/qos.py +272 -0
  325. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/radsecproxy.py +100 -0
  326. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/routeradvertisement.py +64 -0
  327. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/routing.py +317 -0
  328. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/schedules.py +39 -0
  329. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/security.py +155 -0
  330. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/services.py +22 -0
  331. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/sessionmanagement.py +171 -0
  332. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/sfps.py +216 -0
  333. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/smartcardreaders.py +59 -0
  334. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/softwaremodules.py +623 -0
  335. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ssh.py +108 -0
  336. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/standby.py +24 -0
  337. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/stomp.py +47 -0
  338. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/syslog.py +122 -0
  339. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/thread.py +374 -0
  340. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/time.py +113 -0
  341. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/trustedelements.py +61 -0
  342. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/unixdomainsockets.py +44 -0
  343. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/upa.py +143 -0
  344. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/upnp.py +171 -0
  345. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/usb.py +193 -0
  346. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/userinterface.py +164 -0
  347. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/users.py +92 -0
  348. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/uspservices.py +44 -0
  349. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/vxlan.py +120 -0
  350. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/wifi.py +3280 -0
  351. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/wireguard.py +110 -0
  352. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/wwc.py +89 -0
  353. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/xmpp.py +71 -0
  354. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/xpon.py +305 -0
  355. bbfmodels-0.4.0/src/bbfmodels/tr181_usp/zigbee.py +260 -0
  356. bbfmodels-0.4.0/src/bbfmodels/tr196_cwmp/__init__.py +20 -0
  357. bbfmodels-0.4.0/src/bbfmodels/tr196_cwmp/accessmgmt.py +155 -0
  358. bbfmodels-0.4.0/src/bbfmodels/tr196_cwmp/capabilities.py +123 -0
  359. bbfmodels-0.4.0/src/bbfmodels/tr196_cwmp/cellconfig.py +2299 -0
  360. bbfmodels-0.4.0/src/bbfmodels/tr196_cwmp/fapcontrol.py +202 -0
  361. bbfmodels-0.4.0/src/bbfmodels/tr196_cwmp/fapservice.py +41 -0
  362. bbfmodels-0.4.0/src/bbfmodels/tr196_cwmp/paths.py +13 -0
  363. bbfmodels-0.4.0/src/bbfmodels/tr196_cwmp/paths.pyi +2476 -0
  364. bbfmodels-0.4.0/src/bbfmodels/tr196_cwmp/rem.py +364 -0
  365. bbfmodels-0.4.0/src/bbfmodels/tr196_cwmp/transport.py +150 -0
  366. bbfmodels-0.4.0/src/bbfmodels/tr196_usp/__init__.py +20 -0
  367. bbfmodels-0.4.0/src/bbfmodels/tr196_usp/accessmgmt.py +155 -0
  368. bbfmodels-0.4.0/src/bbfmodels/tr196_usp/capabilities.py +123 -0
  369. bbfmodels-0.4.0/src/bbfmodels/tr196_usp/cellconfig.py +2299 -0
  370. bbfmodels-0.4.0/src/bbfmodels/tr196_usp/fapcontrol.py +202 -0
  371. bbfmodels-0.4.0/src/bbfmodels/tr196_usp/fapservice.py +41 -0
  372. bbfmodels-0.4.0/src/bbfmodels/tr196_usp/paths.py +13 -0
  373. bbfmodels-0.4.0/src/bbfmodels/tr196_usp/paths.pyi +2476 -0
  374. bbfmodels-0.4.0/src/bbfmodels/tr196_usp/rem.py +364 -0
  375. bbfmodels-0.4.0/src/bbfmodels/tr196_usp/transport.py +150 -0
  376. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/__init__.py +20 -0
  377. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/accesscontrolcluster.py +175 -0
  378. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/accountlogincluster.py +71 -0
  379. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/actionscluster.py +242 -0
  380. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/activatedcarbonfiltermonitoringcluster.py +50 -0
  381. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/administratorcommissioningcluster.py +68 -0
  382. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/airqualitycluster.py +24 -0
  383. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/applicationbasiccluster.py +38 -0
  384. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/applicationlaunchercluster.py +103 -0
  385. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/audiooutputcluster.py +62 -0
  386. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/basicinformationcluster.py +88 -0
  387. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/bindingcluster.py +35 -0
  388. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/booleanstatecluster.py +31 -0
  389. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/booleanstateconfigurationcluster.py +71 -0
  390. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/bridgeddevicebasicinformationcluster.py +89 -0
  391. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/cameraavsettingsuserlevelmanagementcluster.py +180 -0
  392. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/cameraavstreammanagementcluster.py +420 -0
  393. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/carbondioxideconcentrationmeasurementcluster.py +33 -0
  394. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/carbonmonoxideconcentrationmeasurementcluster.py +33 -0
  395. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/channelcluster.py +274 -0
  396. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/chimecluster.py +46 -0
  397. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/closurecontrolcluster.py +112 -0
  398. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/closuredimensioncluster.py +95 -0
  399. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/colorcontrolcluster.py +394 -0
  400. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/commissionercontrolcluster.py +67 -0
  401. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/commoditymeteringcluster.py +35 -0
  402. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/commoditypricecluster.py +173 -0
  403. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/commoditytariffcluster.py +364 -0
  404. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/contentappobservercluster.py +39 -0
  405. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/contentcontrolcluster.py +350 -0
  406. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/contentlaunchercluster.py +241 -0
  407. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/descriptorcluster.py +49 -0
  408. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/deviceenergymanagementcluster.py +253 -0
  409. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/deviceenergymanagementmodecluster.py +37 -0
  410. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/diagnosticlogscluster.py +41 -0
  411. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/dishwasheralarmcluster.py +53 -0
  412. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/dishwashermodecluster.py +58 -0
  413. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/doorlockcluster.py +666 -0
  414. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/ecosysteminformationcluster.py +66 -0
  415. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/electricalenergymeasurementcluster.py +175 -0
  416. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/electricalgridconditionscluster.py +68 -0
  417. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/electricalpowermeasurementcluster.py +128 -0
  418. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/endpoint.py +26 -0
  419. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/energyevsecluster.py +222 -0
  420. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/energyevsemodecluster.py +37 -0
  421. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/energypreferencecluster.py +46 -0
  422. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/ethernetnetworkdiagnosticscluster.py +44 -0
  423. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/fabric.py +27 -0
  424. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/fancontrolcluster.py +50 -0
  425. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/fixedlabelcluster.py +33 -0
  426. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/flowmeasurementcluster.py +25 -0
  427. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/formaldehydeconcentrationmeasurementcluster.py +33 -0
  428. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/generalcommissioningcluster.py +100 -0
  429. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/generaldiagnosticscluster.py +120 -0
  430. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/groupkeymanagementcluster.py +113 -0
  431. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/groupscluster.py +108 -0
  432. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/hepafiltermonitoringcluster.py +50 -0
  433. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/icdmanagementcluster.py +87 -0
  434. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/identifycluster.py +52 -0
  435. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/illuminancemeasurementcluster.py +26 -0
  436. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/jointfabricadministratorcluster.py +103 -0
  437. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/jointfabricdatastorecluster.py +569 -0
  438. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/keypadinputcluster.py +36 -0
  439. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/laundrydryercontrolscluster.py +25 -0
  440. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/laundrywashercontrolscluster.py +27 -0
  441. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/laundrywashermodecluster.py +58 -0
  442. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/levelcontrolcluster.py +157 -0
  443. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/localizationconfigurationcluster.py +25 -0
  444. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/lowpowercluster.py +35 -0
  445. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/matterservice.py +433 -0
  446. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/mediainputcluster.py +87 -0
  447. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/mediaplaybackcluster.py +315 -0
  448. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/messagescluster.py +111 -0
  449. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/meteridentificationcluster.py +36 -0
  450. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/microwaveovencontrolcluster.py +61 -0
  451. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/microwaveovenmodecluster.py +23 -0
  452. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/modeselectcluster.py +61 -0
  453. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/network.py +11645 -0
  454. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/networkcommissioningcluster.py +166 -0
  455. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/nitrogendioxideconcentrationmeasurementcluster.py +33 -0
  456. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/occupancysensingcluster.py +32 -0
  457. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/onoffcluster.py +105 -0
  458. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/operationalcredentialscluster.py +202 -0
  459. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/operationalstatecluster.py +150 -0
  460. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/otasoftwareupdateprovidercluster.py +79 -0
  461. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/otasoftwareupdaterequestorcluster.py +81 -0
  462. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/ovencavityoperationalstatecluster.py +86 -0
  463. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/ovenmodecluster.py +37 -0
  464. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/ozoneconcentrationmeasurementcluster.py +33 -0
  465. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/paths.py +13 -0
  466. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/paths.pyi +7262 -0
  467. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/pm10concentrationmeasurementcluster.py +33 -0
  468. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/pm1concentrationmeasurementcluster.py +33 -0
  469. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/pm25concentrationmeasurementcluster.py +33 -0
  470. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/powersourcecluster.py +79 -0
  471. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/powersourceconfigurationcluster.py +24 -0
  472. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/powertopologycluster.py +25 -0
  473. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/pressuremeasurementcluster.py +28 -0
  474. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/pumpconfigurationandcontrolcluster.py +148 -0
  475. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/pushavstreamtransportcluster.py +470 -0
  476. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/radonconcentrationmeasurementcluster.py +33 -0
  477. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/refrigeratoralarmcluster.py +40 -0
  478. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/refrigeratorandtemperaturecontrolledcabinetmodecluster.py +58 -0
  479. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/relativehumiditymeasurementcluster.py +25 -0
  480. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/rvccleanmodecluster.py +37 -0
  481. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/rvcoperationalstatecluster.py +106 -0
  482. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/rvcrunmodecluster.py +37 -0
  483. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/scenesmanagementcluster.py +213 -0
  484. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/serviceareacluster.py +109 -0
  485. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/smokecoalarmcluster.py +119 -0
  486. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/softwarediagnosticscluster.py +60 -0
  487. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/soilmeasurementcluster.py +50 -0
  488. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/switchcluster.py +77 -0
  489. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/targetnavigatorcluster.py +65 -0
  490. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/temperaturecontrolcluster.py +41 -0
  491. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/temperaturemeasurementcluster.py +25 -0
  492. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/thermostatcluster.py +235 -0
  493. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/thermostatuserinterfaceconfigurationcluster.py +26 -0
  494. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/threadborderroutermanagementcluster.py +80 -0
  495. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/threadnetworkdiagnosticscluster.py +177 -0
  496. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/threadnetworkdirectorycluster.py +75 -0
  497. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/timeformatlocalizationcluster.py +26 -0
  498. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/timesynchronizationcluster.py +187 -0
  499. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/tlscertificatemanagementcluster.py +184 -0
  500. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/tlsclientmanagementcluster.py +91 -0
  501. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/totalvolatileorganiccompoundsconcentrationmeasurementcluster.py +33 -0
  502. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/unitlocalizationcluster.py +25 -0
  503. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/userlabelcluster.py +33 -0
  504. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/valveconfigurationandcontrolcluster.py +75 -0
  505. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/wakeonlancluster.py +25 -0
  506. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/waterheatermanagementcluster.py +89 -0
  507. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/waterheatermodecluster.py +37 -0
  508. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/watertanklevelmonitoringcluster.py +50 -0
  509. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/webrtctransportprovidercluster.py +169 -0
  510. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/webrtctransportrequestorcluster.py +113 -0
  511. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/wifinetworkdiagnosticscluster.py +70 -0
  512. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/wifinetworkmanagementcluster.py +37 -0
  513. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/windowcoveringcluster.py +99 -0
  514. bbfmodels-0.4.0/src/bbfmodels/tr517_usp/zonemanagementcluster.py +203 -0
  515. bbfmodels-0.4.0/tests/fixtures/mini-usp-full.xml +43 -0
  516. bbfmodels-0.4.0/tests/test_commands.py +116 -0
  517. bbfmodels-0.4.0/tests/test_paths.py +95 -0
  518. bbfmodels-0.4.0/uv.lock +558 -0
  519. bbfmodels-0.2.1/.release-please-manifest.json +0 -3
  520. bbfmodels-0.2.1/CHANGELOG.md +0 -25
  521. bbfmodels-0.2.1/PKG-INFO +0 -100
  522. bbfmodels-0.2.1/README.md +0 -75
  523. bbfmodels-0.2.1/context/README.md +0 -23
  524. bbfmodels-0.2.1/docs/guides/models.md +0 -146
  525. bbfmodels-0.2.1/docs/guides/quickstart.md +0 -57
  526. bbfmodels-0.2.1/docs/guides/runtime.md +0 -106
  527. bbfmodels-0.2.1/docs/index.md +0 -51
  528. bbfmodels-0.2.1/mkdocs.yml +0 -56
  529. bbfmodels-0.2.1/pyproject.toml +0 -63
  530. bbfmodels-0.2.1/src/bbfmodels/__init__.py +0 -16
  531. bbfmodels-0.2.1/src/bbfmodels/codec.py +0 -232
  532. bbfmodels-0.2.1/src/bbfmodels/generate.py +0 -271
  533. bbfmodels-0.2.1/src/bbfmodels/schema.py +0 -152
  534. bbfmodels-0.2.1/src/bbfmodels/tr098/__init__.py +0 -20
  535. bbfmodels-0.2.1/src/bbfmodels/tr098/bulkdata.py +0 -51
  536. bbfmodels-0.2.1/src/bbfmodels/tr098/capabilities.py +0 -23
  537. bbfmodels-0.2.1/src/bbfmodels/tr098/captiveportal.py +0 -19
  538. bbfmodels-0.2.1/src/bbfmodels/tr098/deviceconfig.py +0 -17
  539. bbfmodels-0.2.1/src/bbfmodels/tr098/deviceinfo.py +0 -167
  540. bbfmodels-0.2.1/src/bbfmodels/tr098/dlna.py +0 -29
  541. bbfmodels-0.2.1/src/bbfmodels/tr098/dns.py +0 -51
  542. bbfmodels-0.2.1/src/bbfmodels/tr098/downloadavailability.py +0 -43
  543. bbfmodels-0.2.1/src/bbfmodels/tr098/downloaddiagnostics.py +0 -28
  544. bbfmodels-0.2.1/src/bbfmodels/tr098/fap.py +0 -317
  545. bbfmodels-0.2.1/src/bbfmodels/tr098/faultmgmt.py +0 -97
  546. bbfmodels-0.2.1/src/bbfmodels/tr098/firewall.py +0 -19
  547. bbfmodels-0.2.1/src/bbfmodels/tr098/internetgatewaydevice.py +0 -95
  548. bbfmodels-0.2.1/src/bbfmodels/tr098/ippingdiagnostics.py +0 -28
  549. bbfmodels-0.2.1/src/bbfmodels/tr098/lanconfigsecurity.py +0 -16
  550. bbfmodels-0.2.1/src/bbfmodels/tr098/landevice.py +0 -384
  551. bbfmodels-0.2.1/src/bbfmodels/tr098/laninterfaces.py +0 -39
  552. bbfmodels-0.2.1/src/bbfmodels/tr098/layer2bridging.py +0 -125
  553. bbfmodels-0.2.1/src/bbfmodels/tr098/layer3forwarding.py +0 -37
  554. bbfmodels-0.2.1/src/bbfmodels/tr098/managementserver.py +0 -147
  555. bbfmodels-0.2.1/src/bbfmodels/tr098/nslookupdiagnostics.py +0 -35
  556. bbfmodels-0.2.1/src/bbfmodels/tr098/periodicstatistics.py +0 -55
  557. bbfmodels-0.2.1/src/bbfmodels/tr098/queuemanagement.py +0 -226
  558. bbfmodels-0.2.1/src/bbfmodels/tr098/security.py +0 -32
  559. bbfmodels-0.2.1/src/bbfmodels/tr098/selftestdiagnostics.py +0 -17
  560. bbfmodels-0.2.1/src/bbfmodels/tr098/services.py +0 -15
  561. bbfmodels-0.2.1/src/bbfmodels/tr098/smartcardreader.py +0 -35
  562. bbfmodels-0.2.1/src/bbfmodels/tr098/softwaremodules.py +0 -96
  563. bbfmodels-0.2.1/src/bbfmodels/tr098/time.py +0 -29
  564. bbfmodels-0.2.1/src/bbfmodels/tr098/traceroutediagnostics.py +0 -35
  565. bbfmodels-0.2.1/src/bbfmodels/tr098/udpechoconfig.py +0 -28
  566. bbfmodels-0.2.1/src/bbfmodels/tr098/uploaddiagnostics.py +0 -28
  567. bbfmodels-0.2.1/src/bbfmodels/tr098/upnp.py +0 -154
  568. bbfmodels-0.2.1/src/bbfmodels/tr098/usbhosts.py +0 -72
  569. bbfmodels-0.2.1/src/bbfmodels/tr098/user.py +0 -21
  570. bbfmodels-0.2.1/src/bbfmodels/tr098/userinterface.py +0 -64
  571. bbfmodels-0.2.1/src/bbfmodels/tr098/wandevice.py +0 -650
  572. bbfmodels-0.2.1/src/bbfmodels/tr098/xmpp.py +0 -63
  573. bbfmodels-0.2.1/src/bbfmodels/tr104_1/__init__.py +0 -20
  574. bbfmodels-0.2.1/src/bbfmodels/tr104_1/capabilities.py +0 -91
  575. bbfmodels-0.2.1/src/bbfmodels/tr104_1/phyinterface.py +0 -28
  576. bbfmodels-0.2.1/src/bbfmodels/tr104_1/voiceprofile.py +0 -508
  577. bbfmodels-0.2.1/src/bbfmodels/tr104_1/voiceservice.py +0 -24
  578. bbfmodels-0.2.1/src/bbfmodels/tr104_cwmp/__init__.py +0 -20
  579. bbfmodels-0.2.1/src/bbfmodels/tr104_cwmp/callcontrol.py +0 -333
  580. bbfmodels-0.2.1/src/bbfmodels/tr104_cwmp/calllog.py +0 -199
  581. bbfmodels-0.2.1/src/bbfmodels/tr104_cwmp/capabilities.py +0 -117
  582. bbfmodels-0.2.1/src/bbfmodels/tr104_cwmp/clocksynchronization.py +0 -29
  583. bbfmodels-0.2.1/src/bbfmodels/tr104_cwmp/codecprofile.py +0 -20
  584. bbfmodels-0.2.1/src/bbfmodels/tr104_cwmp/dect.py +0 -78
  585. bbfmodels-0.2.1/src/bbfmodels/tr104_cwmp/h323.py +0 -57
  586. bbfmodels-0.2.1/src/bbfmodels/tr104_cwmp/interwork.py +0 -66
  587. bbfmodels-0.2.1/src/bbfmodels/tr104_cwmp/isdn.py +0 -65
  588. bbfmodels-0.2.1/src/bbfmodels/tr104_cwmp/mgcp.py +0 -61
  589. bbfmodels-0.2.1/src/bbfmodels/tr104_cwmp/pots.py +0 -101
  590. bbfmodels-0.2.1/src/bbfmodels/tr104_cwmp/reservedports.py +0 -17
  591. bbfmodels-0.2.1/src/bbfmodels/tr104_cwmp/sip.py +0 -246
  592. bbfmodels-0.2.1/src/bbfmodels/tr104_cwmp/terminal.py +0 -99
  593. bbfmodels-0.2.1/src/bbfmodels/tr104_cwmp/tone.py +0 -71
  594. bbfmodels-0.2.1/src/bbfmodels/tr104_cwmp/trunk.py +0 -28
  595. bbfmodels-0.2.1/src/bbfmodels/tr104_cwmp/voiceservice.py +0 -57
  596. bbfmodels-0.2.1/src/bbfmodels/tr104_cwmp/voipprofile.py +0 -83
  597. bbfmodels-0.2.1/src/bbfmodels/tr104_usp/__init__.py +0 -20
  598. bbfmodels-0.2.1/src/bbfmodels/tr104_usp/callcontrol.py +0 -333
  599. bbfmodels-0.2.1/src/bbfmodels/tr104_usp/calllog.py +0 -199
  600. bbfmodels-0.2.1/src/bbfmodels/tr104_usp/capabilities.py +0 -117
  601. bbfmodels-0.2.1/src/bbfmodels/tr104_usp/clocksynchronization.py +0 -29
  602. bbfmodels-0.2.1/src/bbfmodels/tr104_usp/codecprofile.py +0 -20
  603. bbfmodels-0.2.1/src/bbfmodels/tr104_usp/dect.py +0 -78
  604. bbfmodels-0.2.1/src/bbfmodels/tr104_usp/h323.py +0 -57
  605. bbfmodels-0.2.1/src/bbfmodels/tr104_usp/interwork.py +0 -66
  606. bbfmodels-0.2.1/src/bbfmodels/tr104_usp/isdn.py +0 -65
  607. bbfmodels-0.2.1/src/bbfmodels/tr104_usp/mgcp.py +0 -61
  608. bbfmodels-0.2.1/src/bbfmodels/tr104_usp/pots.py +0 -83
  609. bbfmodels-0.2.1/src/bbfmodels/tr104_usp/reservedports.py +0 -17
  610. bbfmodels-0.2.1/src/bbfmodels/tr104_usp/sip.py +0 -246
  611. bbfmodels-0.2.1/src/bbfmodels/tr104_usp/terminal.py +0 -90
  612. bbfmodels-0.2.1/src/bbfmodels/tr104_usp/tone.py +0 -71
  613. bbfmodels-0.2.1/src/bbfmodels/tr104_usp/trunk.py +0 -28
  614. bbfmodels-0.2.1/src/bbfmodels/tr104_usp/voiceservice.py +0 -57
  615. bbfmodels-0.2.1/src/bbfmodels/tr104_usp/voipprofile.py +0 -83
  616. bbfmodels-0.2.1/src/bbfmodels/tr135_cwmp/__init__.py +0 -20
  617. bbfmodels-0.2.1/src/bbfmodels/tr135_cwmp/applications.py +0 -82
  618. bbfmodels-0.2.1/src/bbfmodels/tr135_cwmp/avplayers.py +0 -38
  619. bbfmodels-0.2.1/src/bbfmodels/tr135_cwmp/avstreams.py +0 -34
  620. bbfmodels-0.2.1/src/bbfmodels/tr135_cwmp/capabilities.py +0 -211
  621. bbfmodels-0.2.1/src/bbfmodels/tr135_cwmp/components.py +0 -433
  622. bbfmodels-0.2.1/src/bbfmodels/tr135_cwmp/servicemonitoring.py +0 -361
  623. bbfmodels-0.2.1/src/bbfmodels/tr135_cwmp/stbservice.py +0 -30
  624. bbfmodels-0.2.1/src/bbfmodels/tr135_usp/__init__.py +0 -20
  625. bbfmodels-0.2.1/src/bbfmodels/tr135_usp/applications.py +0 -79
  626. bbfmodels-0.2.1/src/bbfmodels/tr135_usp/avplayers.py +0 -37
  627. bbfmodels-0.2.1/src/bbfmodels/tr135_usp/avstreams.py +0 -34
  628. bbfmodels-0.2.1/src/bbfmodels/tr135_usp/capabilities.py +0 -211
  629. bbfmodels-0.2.1/src/bbfmodels/tr135_usp/components.py +0 -400
  630. bbfmodels-0.2.1/src/bbfmodels/tr135_usp/servicemonitoring.py +0 -358
  631. bbfmodels-0.2.1/src/bbfmodels/tr135_usp/stbservice.py +0 -30
  632. bbfmodels-0.2.1/src/bbfmodels/tr140_cwmp/__init__.py +0 -20
  633. bbfmodels-0.2.1/src/bbfmodels/tr140_cwmp/capabilities.py +0 -24
  634. bbfmodels-0.2.1/src/bbfmodels/tr140_cwmp/ftpserver.py +0 -29
  635. bbfmodels-0.2.1/src/bbfmodels/tr140_cwmp/httpserver.py +0 -22
  636. bbfmodels-0.2.1/src/bbfmodels/tr140_cwmp/httpsserver.py +0 -22
  637. bbfmodels-0.2.1/src/bbfmodels/tr140_cwmp/logicalvolume.py +0 -70
  638. bbfmodels-0.2.1/src/bbfmodels/tr140_cwmp/netinfo.py +0 -17
  639. bbfmodels-0.2.1/src/bbfmodels/tr140_cwmp/networkserver.py +0 -19
  640. bbfmodels-0.2.1/src/bbfmodels/tr140_cwmp/physicalmedium.py +0 -49
  641. bbfmodels-0.2.1/src/bbfmodels/tr140_cwmp/sftpserver.py +0 -20
  642. bbfmodels-0.2.1/src/bbfmodels/tr140_cwmp/storagearray.py +0 -22
  643. bbfmodels-0.2.1/src/bbfmodels/tr140_cwmp/storageservice.py +0 -47
  644. bbfmodels-0.2.1/src/bbfmodels/tr140_cwmp/useraccount.py +0 -22
  645. bbfmodels-0.2.1/src/bbfmodels/tr140_cwmp/usergroup.py +0 -18
  646. bbfmodels-0.2.1/src/bbfmodels/tr140_usp/__init__.py +0 -20
  647. bbfmodels-0.2.1/src/bbfmodels/tr140_usp/capabilities.py +0 -24
  648. bbfmodels-0.2.1/src/bbfmodels/tr140_usp/ftpserver.py +0 -29
  649. bbfmodels-0.2.1/src/bbfmodels/tr140_usp/httpserver.py +0 -22
  650. bbfmodels-0.2.1/src/bbfmodels/tr140_usp/httpsserver.py +0 -22
  651. bbfmodels-0.2.1/src/bbfmodels/tr140_usp/logicalvolume.py +0 -70
  652. bbfmodels-0.2.1/src/bbfmodels/tr140_usp/netinfo.py +0 -17
  653. bbfmodels-0.2.1/src/bbfmodels/tr140_usp/networkserver.py +0 -19
  654. bbfmodels-0.2.1/src/bbfmodels/tr140_usp/physicalmedium.py +0 -49
  655. bbfmodels-0.2.1/src/bbfmodels/tr140_usp/sftpserver.py +0 -20
  656. bbfmodels-0.2.1/src/bbfmodels/tr140_usp/storagearray.py +0 -22
  657. bbfmodels-0.2.1/src/bbfmodels/tr140_usp/storageservice.py +0 -47
  658. bbfmodels-0.2.1/src/bbfmodels/tr140_usp/useraccount.py +0 -22
  659. bbfmodels-0.2.1/src/bbfmodels/tr140_usp/usergroup.py +0 -18
  660. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/__init__.py +0 -20
  661. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/atm.py +0 -93
  662. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/basapm.py +0 -45
  663. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/bridging.py +0 -199
  664. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/bulkdata.py +0 -112
  665. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/captiveportal.py +0 -19
  666. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/cellular.py +0 -147
  667. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/collectiondevice.py +0 -30
  668. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/connectionmonitoring.py +0 -58
  669. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/device.py +0 -199
  670. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/deviceinfo.py +0 -364
  671. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/dhcpv4.py +0 -237
  672. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/dhcpv6.py +0 -234
  673. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/dlna.py +0 -29
  674. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/dns.py +0 -246
  675. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/docsis.py +0 -248
  676. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/dsl.py +0 -559
  677. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/dslite.py +0 -34
  678. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/dynamicdns.py +0 -62
  679. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/ethernet.py +0 -231
  680. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/etsim2m.py +0 -179
  681. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/fap.py +0 -240
  682. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/fast.py +0 -188
  683. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/faultmgmt.py +0 -97
  684. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/firewall.py +0 -309
  685. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/fwe.py +0 -51
  686. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/gatewayinfo.py +0 -18
  687. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/ghn.py +0 -216
  688. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/gre.py +0 -105
  689. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/hardware.py +0 -99
  690. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/homeplug.py +0 -83
  691. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/hosts.py +0 -96
  692. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/hpna.py +0 -225
  693. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/ieee1905.py +0 -405
  694. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/ieee8021x.py +0 -76
  695. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/interfacestack.py +0 -20
  696. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/ip.py +0 -553
  697. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/ipsec.py +0 -225
  698. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/ipv6rd.py +0 -33
  699. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/l2tpv3.py +0 -113
  700. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/lanconfigsecurity.py +0 -16
  701. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/leds.py +0 -57
  702. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/lldp.py +0 -74
  703. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/lmap.py +0 -333
  704. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/logical.py +0 -135
  705. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/managementserver.py +0 -204
  706. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/map.py +0 -89
  707. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/moca.py +0 -365
  708. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/mqtt.py +0 -254
  709. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/nat.py +0 -108
  710. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/neighbordiscovery.py +0 -64
  711. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/optical.py +0 -53
  712. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/packetcapturediagnostics.py +0 -37
  713. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/pcp.py +0 -131
  714. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/pdu.py +0 -94
  715. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/periodicfiletransfer.py +0 -104
  716. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/periodicstatistics.py +0 -57
  717. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/ppp.py +0 -105
  718. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/ptm.py +0 -52
  719. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/qos.py +0 -265
  720. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/radsecproxy.py +0 -93
  721. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/routeradvertisement.py +0 -57
  722. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/routing.py +0 -290
  723. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/schedules.py +0 -32
  724. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/security.py +0 -44
  725. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/selftestdiagnostics.py +0 -17
  726. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/services.py +0 -15
  727. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/sessionmanagement.py +0 -164
  728. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/sfps.py +0 -209
  729. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/smartcardreaders.py +0 -42
  730. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/softwaremodules.py +0 -243
  731. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/ssh.py +0 -90
  732. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/stomp.py +0 -40
  733. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/syslog.py +0 -108
  734. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/thread.py +0 -195
  735. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/time.py +0 -106
  736. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/trustedelements.py +0 -54
  737. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/unixdomainsockets.py +0 -37
  738. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/upa.py +0 -121
  739. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/upnp.py +0 -164
  740. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/usb.py +0 -154
  741. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/userinterface.py +0 -121
  742. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/users.py +0 -80
  743. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/uspagent.py +0 -247
  744. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/uspservices.py +0 -37
  745. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/vxlan.py +0 -103
  746. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/wifi.py +0 -2300
  747. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/wireguard.py +0 -93
  748. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/wwc.py +0 -82
  749. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/xmpp.py +0 -64
  750. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/xpon.py +0 -276
  751. bbfmodels-0.2.1/src/bbfmodels/tr181_cwmp/zigbee.py +0 -243
  752. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/__init__.py +0 -20
  753. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/atm.py +0 -77
  754. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/basapm.py +0 -45
  755. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/bridging.py +0 -198
  756. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/bulkdata.py +0 -113
  757. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/captiveportal.py +0 -19
  758. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/cellular.py +0 -146
  759. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/collectiondevice.py +0 -31
  760. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/connectionmonitoring.py +0 -58
  761. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/cwmpmanagementserver.py +0 -16
  762. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/device.py +0 -204
  763. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/deviceinfo.py +0 -390
  764. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/dhcpv4.py +0 -234
  765. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/dhcpv6.py +0 -231
  766. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/dlna.py +0 -29
  767. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/dns.py +0 -219
  768. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/docsis.py +0 -245
  769. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/dsl.py +0 -469
  770. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/dslite.py +0 -34
  771. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/dynamicdns.py +0 -62
  772. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/ethernet.py +0 -224
  773. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/fap.py +0 -239
  774. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/fast.py +0 -187
  775. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/faultmgmt.py +0 -97
  776. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/firewall.py +0 -309
  777. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/fwe.py +0 -50
  778. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/gatewayinfo.py +0 -21
  779. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/ghn.py +0 -141
  780. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/gre.py +0 -104
  781. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/hardware.py +0 -99
  782. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/homeplug.py +0 -82
  783. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/hosts.py +0 -96
  784. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/hpna.py +0 -118
  785. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/ieee1905.py +0 -405
  786. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/ieee8021x.py +0 -73
  787. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/interfacestack.py +0 -20
  788. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/iotcapability.py +0 -196
  789. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/ip.py +0 -201
  790. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/ipsec.py +0 -225
  791. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/ipv6rd.py +0 -33
  792. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/l2tpv3.py +0 -112
  793. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/lanconfigsecurity.py +0 -16
  794. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/leds.py +0 -57
  795. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/lldp.py +0 -74
  796. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/lmap.py +0 -333
  797. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/localagent.py +0 -357
  798. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/logical.py +0 -132
  799. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/map.py +0 -88
  800. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/moca.py +0 -328
  801. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/mqtt.py +0 -252
  802. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/nat.py +0 -108
  803. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/neighbordiscovery.py +0 -64
  804. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/node.py +0 -18
  805. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/optical.py +0 -52
  806. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/pcp.py +0 -131
  807. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/pdu.py +0 -94
  808. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/periodicfiletransfer.py +0 -105
  809. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/periodicstatistics.py +0 -57
  810. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/ppp.py +0 -103
  811. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/proxieddevice.py +0 -34
  812. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/ptm.py +0 -51
  813. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/qos.py +0 -265
  814. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/radsecproxy.py +0 -93
  815. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/routeradvertisement.py +0 -57
  816. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/routing.py +0 -285
  817. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/schedules.py +0 -32
  818. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/security.py +0 -45
  819. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/services.py +0 -15
  820. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/sessionmanagement.py +0 -164
  821. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/sfps.py +0 -209
  822. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/smartcardreaders.py +0 -41
  823. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/softwaremodules.py +0 -253
  824. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/ssh.py +0 -90
  825. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/standby.py +0 -17
  826. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/stomp.py +0 -40
  827. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/syslog.py +0 -108
  828. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/thread.py +0 -193
  829. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/time.py +0 -106
  830. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/trustedelements.py +0 -54
  831. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/unixdomainsockets.py +0 -37
  832. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/upa.py +0 -108
  833. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/upnp.py +0 -164
  834. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/usb.py +0 -152
  835. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/userinterface.py +0 -120
  836. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/users.py +0 -71
  837. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/uspservices.py +0 -37
  838. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/vxlan.py +0 -102
  839. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/wifi.py +0 -2250
  840. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/wireguard.py +0 -92
  841. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/wwc.py +0 -82
  842. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/xmpp.py +0 -64
  843. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/xpon.py +0 -275
  844. bbfmodels-0.2.1/src/bbfmodels/tr181_usp/zigbee.py +0 -242
  845. bbfmodels-0.2.1/src/bbfmodels/tr196_cwmp/__init__.py +0 -20
  846. bbfmodels-0.2.1/src/bbfmodels/tr196_cwmp/accessmgmt.py +0 -148
  847. bbfmodels-0.2.1/src/bbfmodels/tr196_cwmp/capabilities.py +0 -116
  848. bbfmodels-0.2.1/src/bbfmodels/tr196_cwmp/cellconfig.py +0 -2292
  849. bbfmodels-0.2.1/src/bbfmodels/tr196_cwmp/fapcontrol.py +0 -195
  850. bbfmodels-0.2.1/src/bbfmodels/tr196_cwmp/fapservice.py +0 -31
  851. bbfmodels-0.2.1/src/bbfmodels/tr196_cwmp/rem.py +0 -357
  852. bbfmodels-0.2.1/src/bbfmodels/tr196_cwmp/transport.py +0 -143
  853. bbfmodels-0.2.1/src/bbfmodels/tr196_usp/__init__.py +0 -20
  854. bbfmodels-0.2.1/src/bbfmodels/tr196_usp/accessmgmt.py +0 -148
  855. bbfmodels-0.2.1/src/bbfmodels/tr196_usp/capabilities.py +0 -116
  856. bbfmodels-0.2.1/src/bbfmodels/tr196_usp/cellconfig.py +0 -2292
  857. bbfmodels-0.2.1/src/bbfmodels/tr196_usp/fapcontrol.py +0 -195
  858. bbfmodels-0.2.1/src/bbfmodels/tr196_usp/fapservice.py +0 -31
  859. bbfmodels-0.2.1/src/bbfmodels/tr196_usp/rem.py +0 -357
  860. bbfmodels-0.2.1/src/bbfmodels/tr196_usp/transport.py +0 -143
  861. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/__init__.py +0 -20
  862. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/accesscontrolcluster.py +0 -88
  863. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/accountlogincluster.py +0 -16
  864. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/actionscluster.py +0 -43
  865. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/activatedcarbonfiltermonitoringcluster.py +0 -31
  866. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/administratorcommissioningcluster.py +0 -19
  867. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/airqualitycluster.py +0 -17
  868. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/applicationbasiccluster.py +0 -31
  869. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/applicationlaunchercluster.py +0 -32
  870. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/audiooutputcluster.py +0 -28
  871. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/basicinformationcluster.py +0 -54
  872. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/bindingcluster.py +0 -28
  873. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/booleanstatecluster.py +0 -17
  874. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/booleanstateconfigurationcluster.py +0 -23
  875. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/bridgeddevicebasicinformationcluster.py +0 -41
  876. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/cameraavsettingsuserlevelmanagementcluster.py +0 -64
  877. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/cameraavstreammanagementcluster.py +0 -213
  878. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/carbondioxideconcentrationmeasurementcluster.py +0 -26
  879. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/carbonmonoxideconcentrationmeasurementcluster.py +0 -26
  880. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/channelcluster.py +0 -54
  881. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/chimecluster.py +0 -28
  882. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/closurecontrolcluster.py +0 -39
  883. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/closuredimensioncluster.py +0 -58
  884. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/colorcontrolcluster.py +0 -68
  885. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/commissionercontrolcluster.py +0 -17
  886. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/commoditymeteringcluster.py +0 -28
  887. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/commoditypricecluster.py +0 -73
  888. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/commoditytariffcluster.py +0 -275
  889. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/contentappobservercluster.py +0 -16
  890. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/contentcontrolcluster.py +0 -86
  891. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/contentlaunchercluster.py +0 -18
  892. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/descriptorcluster.py +0 -42
  893. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/deviceenergymanagementcluster.py +0 -92
  894. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/deviceenergymanagementmodecluster.py +0 -16
  895. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/diagnosticlogscluster.py +0 -16
  896. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/dishwasheralarmcluster.py +0 -20
  897. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/dishwashermodecluster.py +0 -37
  898. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/doorlockcluster.py +0 -61
  899. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/ecosysteminformationcluster.py +0 -59
  900. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/electricalenergymeasurementcluster.py +0 -104
  901. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/electricalgridconditionscluster.py +0 -43
  902. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/electricalpowermeasurementcluster.py +0 -98
  903. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/endpoint.py +0 -19
  904. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/energyevsecluster.py +0 -39
  905. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/energyevsemodecluster.py +0 -16
  906. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/energypreferencecluster.py +0 -39
  907. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/ethernetnetworkdiagnosticscluster.py +0 -25
  908. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/fabric.py +0 -20
  909. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/fancontrolcluster.py +0 -28
  910. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/fixedlabelcluster.py +0 -26
  911. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/flowmeasurementcluster.py +0 -18
  912. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/formaldehydeconcentrationmeasurementcluster.py +0 -26
  913. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/generalcommissioningcluster.py +0 -35
  914. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/generaldiagnosticscluster.py +0 -40
  915. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/groupkeymanagementcluster.py +0 -39
  916. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/groupscluster.py +0 -17
  917. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/hepafiltermonitoringcluster.py +0 -31
  918. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/icdmanagementcluster.py +0 -36
  919. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/identifycluster.py +0 -18
  920. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/illuminancemeasurementcluster.py +0 -19
  921. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/jointfabricadministratorcluster.py +0 -17
  922. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/jointfabricdatastorecluster.py +0 -219
  923. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/keypadinputcluster.py +0 -16
  924. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/laundrydryercontrolscluster.py +0 -18
  925. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/laundrywashercontrolscluster.py +0 -20
  926. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/laundrywashermodecluster.py +0 -37
  927. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/levelcontrolcluster.py +0 -26
  928. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/localizationconfigurationcluster.py +0 -18
  929. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/lowpowercluster.py +0 -16
  930. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/matterservice.py +0 -423
  931. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/mediainputcluster.py +0 -29
  932. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/mediaplaybackcluster.py +0 -99
  933. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/messagescluster.py +0 -41
  934. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/meteridentificationcluster.py +0 -29
  935. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/microwaveovencontrolcluster.py +0 -24
  936. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/microwaveovenmodecluster.py +0 -16
  937. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/modeselectcluster.py +0 -41
  938. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/network.py +0 -4217
  939. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/networkcommissioningcluster.py +0 -36
  940. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/nitrogendioxideconcentrationmeasurementcluster.py +0 -26
  941. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/occupancysensingcluster.py +0 -18
  942. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/onoffcluster.py +0 -21
  943. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/operationalcredentialscluster.py +0 -44
  944. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/operationalstatecluster.py +0 -39
  945. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/otasoftwareupdateprovidercluster.py +0 -16
  946. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/otasoftwareupdaterequestorcluster.py +0 -29
  947. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/ovencavityoperationalstatecluster.py +0 -39
  948. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/ovenmodecluster.py +0 -16
  949. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/ozoneconcentrationmeasurementcluster.py +0 -26
  950. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/pm10concentrationmeasurementcluster.py +0 -26
  951. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/pm1concentrationmeasurementcluster.py +0 -26
  952. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/pm25concentrationmeasurementcluster.py +0 -26
  953. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/powersourcecluster.py +0 -48
  954. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/powersourceconfigurationcluster.py +0 -17
  955. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/powertopologycluster.py +0 -18
  956. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/pressuremeasurementcluster.py +0 -21
  957. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/pumpconfigurationandcontrolcluster.py +0 -39
  958. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/pushavstreamtransportcluster.py +0 -99
  959. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/radonconcentrationmeasurementcluster.py +0 -26
  960. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/refrigeratoralarmcluster.py +0 -20
  961. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/refrigeratorandtemperaturecontrolledcabinetmodecluster.py +0 -37
  962. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/relativehumiditymeasurementcluster.py +0 -18
  963. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/rvccleanmodecluster.py +0 -16
  964. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/rvcoperationalstatecluster.py +0 -39
  965. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/rvcrunmodecluster.py +0 -16
  966. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/scenesmanagementcluster.py +0 -30
  967. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/serviceareacluster.py +0 -74
  968. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/smokecoalarmcluster.py +0 -29
  969. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/softwarediagnosticscluster.py +0 -32
  970. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/soilmeasurementcluster.py +0 -43
  971. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/switchcluster.py +0 -19
  972. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/targetnavigatorcluster.py +0 -27
  973. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/temperaturecontrolcluster.py +0 -20
  974. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/temperaturemeasurementcluster.py +0 -18
  975. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/thermostatcluster.py +0 -127
  976. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/thermostatuserinterfaceconfigurationcluster.py +0 -19
  977. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/threadborderroutermanagementcluster.py +0 -22
  978. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/threadnetworkdiagnosticscluster.py +0 -143
  979. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/threadnetworkdirectorycluster.py +0 -29
  980. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/timeformatlocalizationcluster.py +0 -19
  981. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/timesynchronizationcluster.py +0 -57
  982. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/tlscertificatemanagementcluster.py +0 -39
  983. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/tlsclientmanagementcluster.py +0 -31
  984. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/totalvolatileorganiccompoundsconcentrationmeasurementcluster.py +0 -26
  985. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/unitlocalizationcluster.py +0 -18
  986. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/userlabelcluster.py +0 -26
  987. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/valveconfigurationandcontrolcluster.py +0 -27
  988. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/wakeonlancluster.py +0 -18
  989. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/waterheatermanagementcluster.py +0 -22
  990. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/waterheatermodecluster.py +0 -16
  991. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/watertanklevelmonitoringcluster.py +0 -31
  992. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/webrtctransportprovidercluster.py +0 -31
  993. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/webrtctransportrequestorcluster.py +0 -31
  994. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/wifinetworkdiagnosticscluster.py +0 -29
  995. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/wifinetworkmanagementcluster.py +0 -18
  996. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/windowcoveringcluster.py +0 -30
  997. bbfmodels-0.2.1/src/bbfmodels/tr517_usp/zonemanagementcluster.py +0 -71
  998. bbfmodels-0.2.1/tests/fixtures/mini-usp-full.xml +0 -40
  999. bbfmodels-0.2.1/uv.lock +0 -558
  1000. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/.github/workflows/ci.yml +0 -0
  1001. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/.github/workflows/docs.yml +0 -0
  1002. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/.github/workflows/pr-title.yml +0 -0
  1003. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/.github/workflows/publish.yml +0 -0
  1004. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/.github/workflows/release-please.yml +0 -0
  1005. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/.gitignore +0 -0
  1006. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/.python-version +0 -0
  1007. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/CLAUDE.md +0 -0
  1008. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/CONTRIBUTING.md +0 -0
  1009. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/LICENSE +0 -0
  1010. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/Makefile +0 -0
  1011. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/NOTICE +0 -0
  1012. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/context/decisions/0001-one-parser-one-ir-several-emitters.md +0 -0
  1013. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/context/decisions/0002-names-stay-as-the-forum-wrote-them.md +0 -0
  1014. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/context/decisions/0003-parse-the-flattened-full-documents.md +0 -0
  1015. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/context/decisions/0004-generated-output-is-committed.md +0 -0
  1016. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/context/decisions/0005-python-models-are-pydantic.md +0 -0
  1017. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/context/decisions/0006-everything-optional-unknown-paths-kept.md +0 -0
  1018. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/context/decisions/0007-vendor-extensions-are-overlays.md +0 -0
  1019. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/context/decisions/0008-python-toolchain.md +0 -0
  1020. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/context/decisions/0009-the-tree-keeps-wire-text.md +0 -0
  1021. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/context/decisions/0010-generated-python-packages.md +0 -0
  1022. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/docs/assets/images/ispx-icon.png +0 -0
  1023. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/docs/assets/js/copy-code.js +0 -0
  1024. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/docs/assets/js/powered-by.js +0 -0
  1025. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/docs/assets/stylesheets/extra.css +0 -0
  1026. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/docs/changelog.md +0 -0
  1027. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/docs/guides/cli.md +0 -0
  1028. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/docs/guides/documents.md +0 -0
  1029. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/docs/guides/vendor-models.md +0 -0
  1030. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/hooks/changelog.py +0 -0
  1031. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/hooks/test_changelog.py +0 -0
  1032. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/release-notes/0.1.0.md +0 -0
  1033. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/release-notes/0.2.0.md +0 -0
  1034. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/release-notes/0.2.1.md +0 -0
  1035. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/release-please-config.json +0 -0
  1036. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/requirements.txt +0 -0
  1037. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/scripts/bootstrap.sh +0 -0
  1038. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/cli.py +0 -0
  1039. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/ir.py +0 -0
  1040. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/model.py +0 -0
  1041. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/parser.py +0 -0
  1042. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/py.typed +0 -0
  1043. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/sources.py +0 -0
  1044. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/tr098/ir.json.gz +0 -0
  1045. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/tr104_1/ir.json.gz +0 -0
  1046. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/tr104_cwmp/ir.json.gz +0 -0
  1047. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/tr104_usp/ir.json.gz +0 -0
  1048. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/tr135_cwmp/ir.json.gz +0 -0
  1049. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/tr135_usp/ir.json.gz +0 -0
  1050. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/tr140_cwmp/ir.json.gz +0 -0
  1051. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/tr140_usp/ir.json.gz +0 -0
  1052. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/tr181_cwmp/ir.json.gz +0 -0
  1053. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/tr181_usp/ir.json.gz +0 -0
  1054. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/tr196_cwmp/ir.json.gz +0 -0
  1055. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/tr196_usp/ir.json.gz +0 -0
  1056. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/tr517_usp/ir.json.gz +0 -0
  1057. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/src/bbfmodels/tree.py +0 -0
  1058. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/tests/fixtures/mini-cwmp-full.xml +0 -0
  1059. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/tests/fixtures/mini-service-full.xml +0 -0
  1060. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/tests/test_cli.py +0 -0
  1061. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/tests/test_codec.py +0 -0
  1062. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/tests/test_documents.py +0 -0
  1063. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/tests/test_generate.py +0 -0
  1064. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/tests/test_parser.py +0 -0
  1065. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/tests/test_schema.py +0 -0
  1066. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/tests/test_tree.py +0 -0
  1067. {bbfmodels-0.2.1 → bbfmodels-0.4.0}/wrangler.jsonc +0 -0
@@ -0,0 +1,70 @@
1
+ name: announce-release
2
+
3
+ # Posts a release's notes to the ispx Discord when they land on main.
4
+ # release-notes/<version>.md is written after the Release PR merges and
5
+ # lands by its own PR, so the notes file
6
+ # arriving on main is the moment the release is told, and only a file
7
+ # added by the push counts: an edit to existing notes is a wording fix,
8
+ # not a release. The dispatch input re-posts one version by hand, which
9
+ # is also how the webhook is tried out.
10
+ on:
11
+ push:
12
+ branches: [main]
13
+ paths:
14
+ - "release-notes/**"
15
+ workflow_dispatch:
16
+ inputs:
17
+ version:
18
+ description: Version whose notes to post, for example 0.2.1
19
+ required: true
20
+ type: string
21
+
22
+ permissions:
23
+ contents: read
24
+
25
+ concurrency:
26
+ group: announce-release
27
+ cancel-in-progress: false
28
+
29
+ jobs:
30
+ announce:
31
+ runs-on: ubuntu-latest
32
+ timeout-minutes: 5
33
+ steps:
34
+ - name: Checkout
35
+ uses: actions/checkout@v4
36
+
37
+ - name: Set up Python
38
+ uses: actions/setup-python@v5
39
+ with:
40
+ python-version: "3.12"
41
+
42
+ - name: Find the versions to post
43
+ id: versions
44
+ env:
45
+ BEFORE: ${{ github.event.before }}
46
+ REQUESTED: ${{ inputs.version }}
47
+ run: |
48
+ if [ -n "$REQUESTED" ]; then
49
+ versions="$REQUESTED"
50
+ else
51
+ git fetch --quiet --depth=1 origin "$BEFORE"
52
+ versions=$(git diff --name-only --diff-filter=A "$BEFORE" "$GITHUB_SHA" -- release-notes/ \
53
+ | sed -n 's#^release-notes/\(.*\)\.md$#\1#p' | sort -V | tr '\n' ' ')
54
+ fi
55
+ echo "list=$versions" >> "$GITHUB_OUTPUT"
56
+ echo "versions: ${versions:-none}"
57
+
58
+ - name: Post the notes
59
+ if: steps.versions.outputs.list != ''
60
+ env:
61
+ DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_RELEASES_WEBHOOK }}
62
+ VERSIONS: ${{ steps.versions.outputs.list }}
63
+ run: |
64
+ if [ -z "$DISCORD_WEBHOOK_URL" ]; then
65
+ echo "::warning::DISCORD_RELEASES_WEBHOOK is not set, nothing posted"
66
+ exit 0
67
+ fi
68
+ for v in $VERSIONS; do
69
+ python hooks/announce.py "$v"
70
+ done
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.4.0"
3
+ }
@@ -0,0 +1,39 @@
1
+ # Changelog
2
+
3
+ ## [0.4.0](https://github.com/ispx-limited/bbfmodels/compare/v0.3.0...v0.4.0) (2026-11-02)
4
+
5
+
6
+ ### Added
7
+
8
+ * **models:** USP commands and events as classes and paths, and the xsi:type a CWMP stack needs ([#20](https://github.com/ispx-limited/bbfmodels/issues/20)) ([eca0c46](https://github.com/ispx-limited/bbfmodels/commit/eca0c46a10c6fc205dbc198d051dbb860f321003))
9
+
10
+ ## [0.3.0](https://github.com/ispx-limited/bbfmodels/compare/v0.2.1...v0.3.0) (2026-11-02)
11
+
12
+
13
+ ### Added
14
+
15
+ * **paths:** typed paths with autocomplete for every model, no pydantic model needed ([#17](https://github.com/ispx-limited/bbfmodels/issues/17)) ([ba3a7b7](https://github.com/ispx-limited/bbfmodels/commit/ba3a7b7781129477aed7ee015d51f9079521b331))
16
+
17
+ ## [0.2.1](https://github.com/ispx-limited/bbfmodels/compare/v0.2.0...v0.2.1) (2026-11-02)
18
+
19
+
20
+ ### Fixed
21
+
22
+ * **models:** generated files no longer record the tool version, which broke the release build ([#10](https://github.com/ispx-limited/bbfmodels/issues/10)) ([ab909c7](https://github.com/ispx-limited/bbfmodels/commit/ab909c7d67b102b11f09122d8c01cea674859e8c))
23
+ * **parser:** a vendor document's empty syntax is read as a string instead of failing ([#11](https://github.com/ispx-limited/bbfmodels/issues/11)) ([7cdb4a1](https://github.com/ispx-limited/bbfmodels/commit/7cdb4a1c4fa39b7741c90a67c84b43812c889fe2))
24
+ * **parser:** a vendor document's unknown vocabulary values fall back with a warning instead of failing ([#13](https://github.com/ispx-limited/bbfmodels/issues/13)) ([bb3e807](https://github.com/ispx-limited/bbfmodels/commit/bb3e80723320fdd69d2b2263ef066d790a28feb2))
25
+
26
+ ## [0.2.0](https://github.com/ispx-limited/bbfmodels/compare/v0.1.0...v0.2.0) (2026-11-02)
27
+
28
+
29
+ ### Added
30
+
31
+ * **models:** generated pydantic models for every published data model, and a generator for any document ([#7](https://github.com/ispx-limited/bbfmodels/issues/7)) ([adf73f2](https://github.com/ispx-limited/bbfmodels/commit/adf73f2004eb7cf24673a52298a251af45f39364))
32
+
33
+ ## 0.1.0 (2026-11-02)
34
+
35
+
36
+ ### Added
37
+
38
+ * **parser:** read a published document into the intermediate representation ([#1](https://github.com/ispx-limited/bbfmodels/issues/1)) ([462d045](https://github.com/ispx-limited/bbfmodels/commit/462d04530a7d3a7d62a3da440404f4afcadb2c4f))
39
+ * **runtime:** resolve paths, hold a device's values and validate them against the schema ([#3](https://github.com/ispx-limited/bbfmodels/issues/3)) ([35146ad](https://github.com/ispx-limited/bbfmodels/commit/35146adb52757ac9a05836415f87815135c55b94))
@@ -0,0 +1,103 @@
1
+ Metadata-Version: 2.5
2
+ Name: bbfmodels
3
+ Version: 0.4.0
4
+ Summary: Typed models and schema tooling for Broadband Forum data models (TR-181, TR-098, TR-104 and more), generated from the published XML
5
+ Project-URL: Homepage, https://github.com/ispx-limited/bbfmodels
6
+ Project-URL: Documentation, https://docs.bbfmodels.ispx.co/
7
+ Project-URL: Changelog, https://docs.bbfmodels.ispx.co/changelog/
8
+ Author: ISPX LIMITED
9
+ License-Expression: Apache-2.0
10
+ License-File: LICENSE
11
+ License-File: NOTICE
12
+ Keywords: broadband-forum,cwmp,data-model,tr-069,tr-098,tr-181,tr-369,usp
13
+ Classifier: Development Status :: 2 - Pre-Alpha
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: Telecommunications Industry
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Topic :: System :: Networking
21
+ Classifier: Typing :: Typed
22
+ Requires-Python: >=3.11
23
+ Requires-Dist: pydantic>=2.14
24
+ Description-Content-Type: text/markdown
25
+
26
+ # bbfmodels
27
+
28
+ Typed models and schema tooling for Broadband Forum data models (TR-181,
29
+ TR-098, TR-104 and the rest), generated from the XML the Forum publishes.
30
+
31
+ The Forum defines what a broadband gateway exposes to its management system
32
+ as XML in the TR-106 schema: thousands of objects and parameters, their types,
33
+ ranges, enumerations, writability and multi-instance tables. Everyone who
34
+ builds against those models, an ACS, a USP controller, a device simulator, an
35
+ integration script, re-derives the same facts from the same XML and hand-types
36
+ the same parameter paths as strings. bbfmodels does it once:
37
+
38
+ - A parser that reads the published XML into a normalised intermediate
39
+ representation, published as JSON with its own schema.
40
+ - A Python runtime that works from that representation: resolve a path,
41
+ validate a value against the model's constraints, convert between the flat
42
+ path and value lists that CWMP and USP carry on the wire and a typed tree.
43
+ - Generated typed bindings: pydantic models for Python, shipped for TR-181
44
+ and TR-098 and the service models (TR-104 voice, TR-135 set-top box,
45
+ TR-140 storage, TR-196 femtocell, TR-517 Matter), and generated on demand
46
+ for any other document, a vendor's included.
47
+ - Typed paths for code that only needs correct path strings:
48
+ `str(Device.WiFi.SSID[1].SSID)` with autocomplete over the whole model
49
+ and the parameter's definition one attribute away. JSON Schema and TypeScript follow from the
50
+ same representation, Go when there is a consumer.
51
+
52
+ Names stay as the Forum wrote them. `Device.WiFi.SSID.{i}.SSID` is a table of
53
+ `SSID` entries indexed by instance number, and the attribute is `SSID`, not
54
+ `ssid`.
55
+
56
+ ## Install
57
+
58
+ ```sh
59
+ pip install bbfmodels
60
+ ```
61
+
62
+ Python 3.11 or later. The one runtime dependency is pydantic.
63
+
64
+ ## Status
65
+
66
+ Early. The parser, the intermediate representation, the runtime, the
67
+ generated Python models with USP commands and events, and typed paths are
68
+ in place. JSON Schema and TypeScript come next. Before 1.0 a minor release
69
+ may change the IR and the runtime API.
70
+
71
+ ```python
72
+ from bbfmodels.tr181_cwmp import Device
73
+
74
+ device = Device.from_flat(values_from_the_device)
75
+ radio = device.WiFi.Radio[1]
76
+ radio.Channel # 36, an int
77
+ radio.Enable # True
78
+ device.problems() # every value outside the model's constraints
79
+ device.flatten() # back to path and text pairs
80
+ ```
81
+
82
+ The design decisions behind the code are in `context/decisions/`, indexed in
83
+ `context/README.md`. Read them before changing the parser or the IR.
84
+
85
+ ## Development
86
+
87
+ Prerequisites: git and [uv](https://docs.astral.sh/uv/). The pinned Python is
88
+ installed by uv.
89
+
90
+ ```sh
91
+ scripts/bootstrap.sh
92
+ make test
93
+ make lint
94
+ ```
95
+
96
+ `make help` lists the rest. Documentation is built from `docs/` with
97
+ `make docs` and published at https://docs.bbfmodels.ispx.co/.
98
+
99
+ ## Licence
100
+
101
+ Apache-2.0, copyright ISPX LIMITED. The Broadband Forum publishes its data
102
+ models under the BSD 3-clause licence; output derived from them carries the
103
+ Forum's notice.
@@ -0,0 +1,78 @@
1
+ # bbfmodels
2
+
3
+ Typed models and schema tooling for Broadband Forum data models (TR-181,
4
+ TR-098, TR-104 and the rest), generated from the XML the Forum publishes.
5
+
6
+ The Forum defines what a broadband gateway exposes to its management system
7
+ as XML in the TR-106 schema: thousands of objects and parameters, their types,
8
+ ranges, enumerations, writability and multi-instance tables. Everyone who
9
+ builds against those models, an ACS, a USP controller, a device simulator, an
10
+ integration script, re-derives the same facts from the same XML and hand-types
11
+ the same parameter paths as strings. bbfmodels does it once:
12
+
13
+ - A parser that reads the published XML into a normalised intermediate
14
+ representation, published as JSON with its own schema.
15
+ - A Python runtime that works from that representation: resolve a path,
16
+ validate a value against the model's constraints, convert between the flat
17
+ path and value lists that CWMP and USP carry on the wire and a typed tree.
18
+ - Generated typed bindings: pydantic models for Python, shipped for TR-181
19
+ and TR-098 and the service models (TR-104 voice, TR-135 set-top box,
20
+ TR-140 storage, TR-196 femtocell, TR-517 Matter), and generated on demand
21
+ for any other document, a vendor's included.
22
+ - Typed paths for code that only needs correct path strings:
23
+ `str(Device.WiFi.SSID[1].SSID)` with autocomplete over the whole model
24
+ and the parameter's definition one attribute away. JSON Schema and TypeScript follow from the
25
+ same representation, Go when there is a consumer.
26
+
27
+ Names stay as the Forum wrote them. `Device.WiFi.SSID.{i}.SSID` is a table of
28
+ `SSID` entries indexed by instance number, and the attribute is `SSID`, not
29
+ `ssid`.
30
+
31
+ ## Install
32
+
33
+ ```sh
34
+ pip install bbfmodels
35
+ ```
36
+
37
+ Python 3.11 or later. The one runtime dependency is pydantic.
38
+
39
+ ## Status
40
+
41
+ Early. The parser, the intermediate representation, the runtime, the
42
+ generated Python models with USP commands and events, and typed paths are
43
+ in place. JSON Schema and TypeScript come next. Before 1.0 a minor release
44
+ may change the IR and the runtime API.
45
+
46
+ ```python
47
+ from bbfmodels.tr181_cwmp import Device
48
+
49
+ device = Device.from_flat(values_from_the_device)
50
+ radio = device.WiFi.Radio[1]
51
+ radio.Channel # 36, an int
52
+ radio.Enable # True
53
+ device.problems() # every value outside the model's constraints
54
+ device.flatten() # back to path and text pairs
55
+ ```
56
+
57
+ The design decisions behind the code are in `context/decisions/`, indexed in
58
+ `context/README.md`. Read them before changing the parser or the IR.
59
+
60
+ ## Development
61
+
62
+ Prerequisites: git and [uv](https://docs.astral.sh/uv/). The pinned Python is
63
+ installed by uv.
64
+
65
+ ```sh
66
+ scripts/bootstrap.sh
67
+ make test
68
+ make lint
69
+ ```
70
+
71
+ `make help` lists the rest. Documentation is built from `docs/` with
72
+ `make docs` and published at https://docs.bbfmodels.ispx.co/.
73
+
74
+ ## Licence
75
+
76
+ Apache-2.0, copyright ISPX LIMITED. The Broadband Forum publishes its data
77
+ models under the BSD 3-clause licence; output derived from them carries the
78
+ Forum's notice.
@@ -0,0 +1,25 @@
1
+ # Design memory
2
+
3
+ This directory is the project's design memory: the decisions that shape
4
+ the code and the reasons behind them, so a contributor, or a coding agent
5
+ working with one, can change the code without undoing a decision by
6
+ accident. Read it before touching the parser, the IR or a generator.
7
+
8
+ `decisions/` holds one record per significant decision: context, decision,
9
+ consequences, in a page or less. Records are append-only. When a decision
10
+ changes, a new record is written and the old one is marked superseded.
11
+
12
+ | Number | Title | Status |
13
+ | --- | --- | --- |
14
+ | [0001](decisions/0001-one-parser-one-ir-several-emitters.md) | One parser, one intermediate representation, several emitters | Accepted |
15
+ | [0002](decisions/0002-names-stay-as-the-forum-wrote-them.md) | Names stay as the Forum wrote them | Accepted |
16
+ | [0003](decisions/0003-parse-the-flattened-full-documents.md) | Parse the Forum's flattened full documents | Accepted |
17
+ | [0004](decisions/0004-generated-output-is-committed.md) | Generated output is committed and checked for drift | Accepted |
18
+ | [0005](decisions/0005-python-models-are-pydantic.md) | Generated Python models are pydantic, built lazily per subtree | Accepted |
19
+ | [0006](decisions/0006-everything-optional-unknown-paths-kept.md) | Everything is optional and unknown paths round-trip | Accepted |
20
+ | [0007](decisions/0007-vendor-extensions-are-overlays.md) | Vendor extensions are overlays in the same schema | Accepted |
21
+ | [0008](decisions/0008-python-toolchain.md) | Python toolchain: uv, ruff, mypy, pytest, standard library XML | Accepted |
22
+ | [0009](decisions/0009-the-tree-keeps-wire-text.md) | The data tree keeps wire text and decodes on demand | Accepted |
23
+ | [0010](decisions/0010-generated-python-packages.md) | One generated package per document, lenient on input, strict in `problems` | Accepted |
24
+ | [0011](decisions/0011-typed-paths-are-a-stub-over-the-schema.md) | Typed paths are a generic runtime plus a stub, not generated classes | Accepted |
25
+ | [0012](decisions/0012-commands-and-events-have-argument-paths.md) | Commands and events get argument paths, and classes named by owner | Accepted |
@@ -0,0 +1,44 @@
1
+ # 0011: Typed paths are a generic runtime plus a stub, not generated classes
2
+
3
+ ## Context
4
+
5
+ Not every user wants models. Code that queries an ACS API asks for a
6
+ parameter by its path string and gets a string back, and what it needs
7
+ from bbfmodels is a correct path with autocomplete and the parameter's
8
+ definition one step away. Generating a class per object with a property
9
+ per member would give that, at the cost of another megabyte of code per
10
+ package, import time to match, and a second copy of every name the models
11
+ already carry.
12
+
13
+ ## Decision
14
+
15
+ Typed paths are one generic runtime (`bbfmodels.paths`) that walks the
16
+ package's shipped IR, plus a generated stub file (`paths.pyi`) per package
17
+ that declares every object and parameter with the Python type of its
18
+ value. The runtime `paths.py` in a package is three lines: the root path
19
+ over the package's schema. Editors and type checkers read the stub; the
20
+ interpreter never does.
21
+
22
+ - `str()` of a path is the data path. A table renders as its partial path
23
+ and offers `search` for the USP wildcard form and `schema_path` for the
24
+ `{i}` form. Paths compare and hash as strings.
25
+ - `definition` returns the IR object or parameter.
26
+ - An unknown name is an `AttributeError`. A name the schema does not list
27
+ is reached with `child()`, so a typo in a standard name is never taken
28
+ for a vendor parameter.
29
+ - Identifiers follow the models' rule (`N11kEnable` for `11kEnable`), and
30
+ the runtime maps the identifier back to the Forum name.
31
+
32
+ pydantic remains a dependency even for a user who only wants paths, because
33
+ the IR the runtime walks is built on it. That is accepted: the cost is one
34
+ ubiquitous package, and a second dependency-free distribution can be split
35
+ out if someone needs it.
36
+
37
+ ## Consequences
38
+
39
+ - Autocomplete over the whole of TR-181 with no import cost: the stub for
40
+ TR-181 is a few hundred kilobytes that only tools read.
41
+ - The first attribute access loads the package's IR (about 50 ms); every
42
+ one after that is a dictionary lookup.
43
+ - The value type in the stub (`ParamPath[int]`) is documentation for the
44
+ reader and the type checker; the runtime does not use it.
@@ -0,0 +1,47 @@
1
+ # 0012: Commands and events get argument paths, and classes named by owner
2
+
3
+ ## Context
4
+
5
+ USP adds commands (`Device.Reboot()`, `Device.IP.Diagnostics.TraceRoute()`)
6
+ with input and output arguments, and events (`Device.Boot!`) with a
7
+ payload. The specification gives the command and the event a path but not
8
+ their arguments: an Operate request carries input arguments as a map of
9
+ names to values, and the response the output the same way, with objects
10
+ inside an output (`RouteHops.{i}.`) flattened into dotted names. The
11
+ schema, the models and the paths each needed a way to refer to those
12
+ arguments, and command names repeat across objects (`Reset()`,
13
+ `Upload()`, `ScheduleTimer()`), so a class cannot be named after the
14
+ command alone.
15
+
16
+ ## Decision
17
+
18
+ - **The schema indexes arguments as objects under synthetic paths**:
19
+ `Device.IP.Diagnostics.TraceRoute().Input.`,
20
+ `Device.IP.Diagnostics.TraceRoute().Output.`, `Device.Boot!.`, with the
21
+ objects inside an output under them
22
+ (`...TraceRoute().Output.RouteHops.{i}.`). Argument values then resolve
23
+ and validate like any parameter. These objects are not `children()` of
24
+ the owning object; they are reached through the command or event.
25
+ - **Generated classes are named by owner, command and side**:
26
+ `IP_Diagnostics_TraceRoute_Input`, `IP_Diagnostics_TraceRoute_Output`,
27
+ `IP_Diagnostics_TraceRoute_Output_RouteHops`; an event is `Device_Boot_Event`, the suffix keeping it apart from an object class of the same name.
28
+ Each package exposes `COMMANDS`, a map from command path to its input
29
+ and output classes, and `EVENTS`, from event path to its class, so a
30
+ controller can pick the class for a response by the path it sent.
31
+ `flatten("")` gives the bare argument names an Operate request carries.
32
+ - **Paths name commands and events as the specification does**:
33
+ `str(Device.IP.Diagnostics.TraceRoute)` is `Device.IP.Diagnostics.TraceRoute()`
34
+ and `str(Device.Boot)` is `Device.Boot!`; attribute access drops the
35
+ suffix, `child()` takes the full name.
36
+ - **`codec.xsd_type` gives the `xsi:type` CWMP carries** for a parameter,
37
+ derived from its base type, `xsd:string` for any list. This is the one
38
+ piece a CWMP stack needs from the model that the model alone did not
39
+ state. SOAP and protobuf envelopes stay out of scope.
40
+
41
+ ## Consequences
42
+
43
+ - The synthetic paths are bbfmodels' own notation and never appear on the
44
+ wire; they exist so that one validation routine serves parameters and
45
+ arguments alike.
46
+ - TR-181 USP generates 1486 classes rather than 975; import time is
47
+ unchanged at about a third of a second.
@@ -0,0 +1,178 @@
1
+ # Generated models
2
+
3
+ A generated package has a pydantic class per object, a typed optional
4
+ field per parameter and a `dict[int, Child]` per table. Names are the
5
+ Forum's names, PascalCase and all. These packages ship with bbfmodels:
6
+
7
+ | Package | Document | Root class |
8
+ | --- | --- | --- |
9
+ | `bbfmodels.tr181_cwmp` | TR-181 issue 2, CWMP edition | `Device` |
10
+ | `bbfmodels.tr181_usp` | TR-181 issue 2, USP edition | `Device` |
11
+ | `bbfmodels.tr098` | TR-098 | `InternetGatewayDevice` |
12
+ | `bbfmodels.tr104_1` | TR-104 issue 1, voice on TR-098 gateways | `VoiceService` |
13
+ | `bbfmodels.tr104_cwmp`, `bbfmodels.tr104_usp` | TR-104 issue 2, voice | `VoiceService` |
14
+ | `bbfmodels.tr135_cwmp`, `bbfmodels.tr135_usp` | TR-135, set-top box | `STBService` |
15
+ | `bbfmodels.tr140_cwmp`, `bbfmodels.tr140_usp` | TR-140, storage | `StorageService` |
16
+ | `bbfmodels.tr196_cwmp`, `bbfmodels.tr196_usp` | TR-196, femtocell | `FAPService` |
17
+ | `bbfmodels.tr517_usp` | TR-517, Matter | `MatterService` |
18
+
19
+ Each package records `SOURCE`, `SPEC` and `MODEL`, and `schema()` returns
20
+ the `Schema` of the IR it was generated from.
21
+
22
+ ## From device values and back
23
+
24
+ `from_flat` takes the path and value pairs an ACS or USP controller
25
+ returns. Values coerce to their Python type: integers, booleans (`1` and
26
+ `true` alike), dates, binary, decimals, and comma-separated lists.
27
+
28
+ ```python
29
+ from bbfmodels.tr181_cwmp import Device
30
+
31
+ device = Device.from_flat({
32
+ "Device.DeviceInfo.UpTime": "1234",
33
+ "Device.DeviceInfo.FirstUseDate": "2026-01-02T03:04:05Z",
34
+ "Device.WiFi.Radio.1.Enable": "1",
35
+ "Device.WiFi.Radio.1.Channel": "36",
36
+ "Device.WiFi.SSID.1.LowerLayers": "Device.WiFi.Radio.1",
37
+ })
38
+ device.DeviceInfo.UpTime # 1234
39
+ device.DeviceInfo.FirstUseDate # datetime(2026, 1, 2, 3, 4, 5, tzinfo=UTC)
40
+ device.WiFi.Radio[1].Enable # True
41
+ device.WiFi.SSID[1].LowerLayers # ['Device.WiFi.Radio.1']
42
+ device.WiFi.Radio[2] # KeyError: only instance 1 was given
43
+ ```
44
+
45
+ Every field is optional, because no device exposes the whole model, and a
46
+ child object that was not given is `None`. Paths may also be relative to
47
+ the object: `Device.from_flat({"WiFi.Radio.1.Channel": "36"})`.
48
+
49
+ `flatten` writes the model back as path and text pairs in canonical form:
50
+ `true` for a boolean, `a,b` for a list, upper-case hex for binary.
51
+
52
+ ```python
53
+ device.flatten()
54
+ # {'Device.DeviceInfo.UpTime': '1234', ..., 'Device.WiFi.Radio.1.Enable': 'true', ...}
55
+ ```
56
+
57
+ ## Validation
58
+
59
+ Parsing is lenient on purpose. Ranges, sizes, patterns and enumerations are
60
+ not enforced when a model is built, because a real device returns values
61
+ outside them and a model that refused them could not hold what the device
62
+ said. `problems()` reports every violation against the shipped schema:
63
+
64
+ ```python
65
+ device.WiFi.Radio[1].Channel = 999
66
+ device.WiFi.Radio[1].Status = "zz"
67
+ device.problems()
68
+ # [('Device.WiFi.Radio.1.Status', "'zz' is not one of the enumerated values"),
69
+ # ('Device.WiFi.Radio.1.Channel', '999 is outside the allowed ranges')]
70
+ ```
71
+
72
+ An enumeration is typed `Literal[...] | str`: an editor completes the
73
+ Forum's values, and a vendor's extra value still validates. A parameter
74
+ that takes its allowed values from another parameter, as
75
+ `OperatingChannelBandwidth` does from `SupportedOperatingChannelBandwidths`,
76
+ is not checked against a fixed list, because the list is the device's.
77
+
78
+ ## Tables and construction
79
+
80
+ A table is a plain `dict[int, Child]`. Classes construct directly, and
81
+ `flatten` takes the data path to write under:
82
+
83
+ ```python
84
+ from bbfmodels.tr181_cwmp.wifi import WiFi_Radio
85
+
86
+ radio = WiFi_Radio(Enable=True, Channel=36, OperatingFrequencyBand="5GHz")
87
+ radio.flatten("Device.WiFi.Radio.1.")
88
+ # {'Device.WiFi.Radio.1.Enable': 'true', 'Device.WiFi.Radio.1.OperatingFrequencyBand': '5GHz', 'Device.WiFi.Radio.1.Channel': '36'}
89
+ ```
90
+
91
+ Class names are the object's path with the root dropped and dots replaced:
92
+ `WiFi_Radio`, `WiFi_Radio_Stats`, `IP_Interface_IPv4Address`. They live in
93
+ the module of their top-level subtree: `bbfmodels.tr181_cwmp.wifi`,
94
+ `bbfmodels.tr181_cwmp.ip`.
95
+
96
+ ## Vendor parameters
97
+
98
+ Parameters and objects the model does not define are kept as pydantic
99
+ extras and written back by `flatten`. An unknown parameter is text; an
100
+ unknown object is a nested dict with instance numbers as string keys.
101
+
102
+ ```python
103
+ device = Device.from_flat({
104
+ "Device.WiFi.Radio.1.X_ACME_TxPower": "high",
105
+ "Device.X_ACME_Mesh.1.Role": "controller",
106
+ })
107
+ device.WiFi.Radio[1].X_ACME_TxPower # 'high'
108
+ device.X_ACME_Mesh # {'1': {'Role': 'controller'}}
109
+ device.flatten() # both paths come back
110
+ ```
111
+
112
+ For typed access to a vendor's extensions, generate a package from the
113
+ vendor's document: see [vendor models](vendor-models.md).
114
+
115
+ ## Service models
116
+
117
+ A service model's root is a table, `VoiceService.{i}.`, that a device
118
+ mounts under its `Services.` object. The generated classes carry the
119
+ document's paths and the mount is given when converting:
120
+
121
+ ```python
122
+ from bbfmodels.tr104_cwmp import VoiceService
123
+
124
+ voice = VoiceService.from_flat(values, "Device.Services.VoiceService.1.")
125
+ voice.Capabilities.MaxLineCount
126
+ voice.flatten("Device.Services.VoiceService.1.")
127
+ voice.problems("Device.Services.VoiceService.1.")
128
+ ```
129
+
130
+ Without a prefix, `from_flat` takes paths relative to the instance
131
+ (`Capabilities.MaxLineCount`) and `problems` reports against instance 1.
132
+
133
+ ## Commands and events
134
+
135
+ The USP packages carry a class for every command's input and output and
136
+ every event's payload. `COMMANDS` maps a command path to its two classes
137
+ and `EVENTS` an event path to its class, which is how a controller picks
138
+ the class for the response to the Operate it sent:
139
+
140
+ ```python
141
+ from bbfmodels.tr181_usp import COMMANDS, EVENTS
142
+
143
+ request_cls, response_cls = COMMANDS["Device.IP.Diagnostics.TraceRoute()"]
144
+ request = request_cls(Host="example.net", NumberOfTries=3)
145
+ request.flatten("") # {'Host': 'example.net', 'NumberOfTries': '3'}, the input_args of an Operate
146
+
147
+ response = response_cls.from_flat({
148
+ "Status": "Complete",
149
+ "ResponseTime": "12",
150
+ "RouteHops.1.Host": "gw",
151
+ "RouteHops.1.RTTimes": "1,2,3",
152
+ })
153
+ response.RouteHops[1].RTTimes # [1, 2, 3]
154
+ response.problems() # checked like any parameter
155
+
156
+ boot = EVENTS["Device.Boot!"].from_flat({"Cause": "LocalReboot"})
157
+ ```
158
+
159
+ The classes are importable by name too, `IP_Diagnostics_TraceRoute_Input`
160
+ from `bbfmodels.tr181_usp.ip`, named by the owning object, the command
161
+ and the side. In the schema the arguments live under
162
+ `Device.IP.Diagnostics.TraceRoute().Input.` and `.Output.`, and an event's
163
+ under `Device.Boot!.`, which is where `problems()` reports them.
164
+
165
+ ## Names that had to change
166
+
167
+ Three kinds of Forum name cannot be a Python field as written. The field
168
+ gets a safe name and the Forum's name as its alias, so `from_flat` and
169
+ `flatten` are unaffected:
170
+
171
+ | Forum name | Field | Why |
172
+ | --- | --- | --- |
173
+ | `Config` | `Config_` | pydantic reads `Config` from a class body as its legacy configuration |
174
+ | `11kRSSIHighThresholdOffset` | `N11kRSSIHighThresholdOffset` | an identifier cannot start with a digit |
175
+ | a name with a hyphen or other symbol | the symbol becomes `_` | not an identifier |
176
+
177
+ None of the Forum's own documents needs the second or third; vendor
178
+ documents do.