bbfmodels 0.3.0__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.
- bbfmodels-0.4.0/.release-please-manifest.json +3 -0
- bbfmodels-0.4.0/CHANGELOG.md +39 -0
- bbfmodels-0.4.0/PKG-INFO +103 -0
- bbfmodels-0.4.0/README.md +78 -0
- bbfmodels-0.4.0/context/README.md +25 -0
- bbfmodels-0.4.0/context/decisions/0012-commands-and-events-have-argument-paths.md +47 -0
- bbfmodels-0.4.0/docs/guides/models.md +178 -0
- bbfmodels-0.4.0/docs/guides/paths.md +104 -0
- bbfmodels-0.4.0/docs/guides/runtime.md +126 -0
- bbfmodels-0.4.0/docs/index.md +51 -0
- bbfmodels-0.4.0/pyproject.toml +63 -0
- bbfmodels-0.4.0/release-notes/0.4.0.md +5 -0
- bbfmodels-0.4.0/src/bbfmodels/__init__.py +16 -0
- bbfmodels-0.4.0/src/bbfmodels/codec.py +255 -0
- bbfmodels-0.4.0/src/bbfmodels/generate.py +457 -0
- bbfmodels-0.4.0/src/bbfmodels/paths.py +198 -0
- bbfmodels-0.4.0/src/bbfmodels/schema.py +190 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/__init__.py +20 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/bulkdata.py +58 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/capabilities.py +30 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/captiveportal.py +26 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/deviceconfig.py +24 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/deviceinfo.py +174 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/dlna.py +36 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/dns.py +58 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/downloadavailability.py +50 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/downloaddiagnostics.py +35 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/fap.py +324 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/faultmgmt.py +104 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/firewall.py +26 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/internetgatewaydevice.py +105 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/ippingdiagnostics.py +35 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/lanconfigsecurity.py +23 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/landevice.py +391 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/laninterfaces.py +46 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/layer2bridging.py +132 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/layer3forwarding.py +44 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/managementserver.py +154 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/nslookupdiagnostics.py +42 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/paths.pyi +2387 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/periodicstatistics.py +62 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/queuemanagement.py +233 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/security.py +39 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/selftestdiagnostics.py +24 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/services.py +22 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/smartcardreader.py +42 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/softwaremodules.py +103 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/time.py +36 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/traceroutediagnostics.py +42 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/udpechoconfig.py +35 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/uploaddiagnostics.py +35 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/upnp.py +161 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/usbhosts.py +79 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/user.py +28 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/userinterface.py +71 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/wandevice.py +657 -0
- bbfmodels-0.4.0/src/bbfmodels/tr098/xmpp.py +70 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_1/__init__.py +20 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_1/capabilities.py +98 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_1/paths.pyi +486 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_1/phyinterface.py +35 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_1/voiceprofile.py +515 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_1/voiceservice.py +34 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/__init__.py +20 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/callcontrol.py +340 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/calllog.py +206 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/capabilities.py +124 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/clocksynchronization.py +36 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/codecprofile.py +27 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/dect.py +85 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/h323.py +64 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/interwork.py +73 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/isdn.py +72 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/mgcp.py +68 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/paths.pyi +1195 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/pots.py +108 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/reservedports.py +24 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/sip.py +253 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/terminal.py +106 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/tone.py +78 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/trunk.py +35 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/voiceservice.py +67 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_cwmp/voipprofile.py +90 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/__init__.py +20 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/callcontrol.py +340 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/calllog.py +206 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/capabilities.py +124 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/clocksynchronization.py +36 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/codecprofile.py +27 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/dect.py +85 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/h323.py +64 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/interwork.py +73 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/isdn.py +72 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/mgcp.py +68 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/paths.pyi +1180 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/pots.py +118 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/reservedports.py +24 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/sip.py +253 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/terminal.py +111 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/tone.py +78 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/trunk.py +35 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/voiceservice.py +67 -0
- bbfmodels-0.4.0/src/bbfmodels/tr104_usp/voipprofile.py +90 -0
- bbfmodels-0.4.0/src/bbfmodels/tr135_cwmp/__init__.py +20 -0
- bbfmodels-0.4.0/src/bbfmodels/tr135_cwmp/applications.py +89 -0
- bbfmodels-0.4.0/src/bbfmodels/tr135_cwmp/avplayers.py +45 -0
- bbfmodels-0.4.0/src/bbfmodels/tr135_cwmp/avstreams.py +41 -0
- bbfmodels-0.4.0/src/bbfmodels/tr135_cwmp/capabilities.py +218 -0
- bbfmodels-0.4.0/src/bbfmodels/tr135_cwmp/components.py +440 -0
- bbfmodels-0.4.0/src/bbfmodels/tr135_cwmp/paths.pyi +823 -0
- bbfmodels-0.4.0/src/bbfmodels/tr135_cwmp/servicemonitoring.py +368 -0
- bbfmodels-0.4.0/src/bbfmodels/tr135_cwmp/stbservice.py +40 -0
- bbfmodels-0.4.0/src/bbfmodels/tr135_usp/__init__.py +20 -0
- bbfmodels-0.4.0/src/bbfmodels/tr135_usp/applications.py +119 -0
- bbfmodels-0.4.0/src/bbfmodels/tr135_usp/avplayers.py +55 -0
- bbfmodels-0.4.0/src/bbfmodels/tr135_usp/avstreams.py +41 -0
- bbfmodels-0.4.0/src/bbfmodels/tr135_usp/capabilities.py +218 -0
- bbfmodels-0.4.0/src/bbfmodels/tr135_usp/components.py +478 -0
- bbfmodels-0.4.0/src/bbfmodels/tr135_usp/paths.pyi +808 -0
- bbfmodels-0.4.0/src/bbfmodels/tr135_usp/servicemonitoring.py +398 -0
- bbfmodels-0.4.0/src/bbfmodels/tr135_usp/stbservice.py +40 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/__init__.py +20 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/capabilities.py +31 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/ftpserver.py +36 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/httpserver.py +29 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/httpsserver.py +29 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/logicalvolume.py +77 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/netinfo.py +24 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/networkserver.py +26 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/paths.pyi +190 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/physicalmedium.py +56 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/sftpserver.py +27 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/storagearray.py +29 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/storageservice.py +57 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/useraccount.py +29 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_cwmp/usergroup.py +25 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_usp/__init__.py +20 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_usp/capabilities.py +31 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_usp/ftpserver.py +36 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_usp/httpserver.py +29 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_usp/httpsserver.py +29 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_usp/logicalvolume.py +77 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_usp/netinfo.py +24 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_usp/networkserver.py +26 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_usp/paths.pyi +190 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_usp/physicalmedium.py +56 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_usp/sftpserver.py +27 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_usp/storagearray.py +29 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_usp/storageservice.py +57 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_usp/useraccount.py +29 -0
- bbfmodels-0.4.0/src/bbfmodels/tr140_usp/usergroup.py +25 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/__init__.py +20 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/atm.py +100 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/basapm.py +52 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/bridging.py +206 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/bulkdata.py +119 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/captiveportal.py +26 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/cellular.py +154 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/collectiondevice.py +37 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/connectionmonitoring.py +65 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/device.py +209 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/deviceinfo.py +371 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/dhcpv4.py +244 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/dhcpv6.py +241 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/dlna.py +36 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/dns.py +253 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/docsis.py +255 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/dsl.py +566 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/dslite.py +41 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/dynamicdns.py +69 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ethernet.py +238 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/etsim2m.py +186 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/fap.py +247 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/fast.py +195 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/faultmgmt.py +104 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/firewall.py +316 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/fwe.py +58 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/gatewayinfo.py +25 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ghn.py +223 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/gre.py +112 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/hardware.py +106 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/homeplug.py +90 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/hosts.py +103 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/hpna.py +232 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ieee1905.py +412 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ieee8021x.py +83 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/interfacestack.py +27 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ip.py +560 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ipsec.py +232 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ipv6rd.py +40 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/l2tpv3.py +120 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/lanconfigsecurity.py +23 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/leds.py +64 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/lldp.py +81 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/lmap.py +340 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/logical.py +142 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/managementserver.py +211 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/map.py +96 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/moca.py +372 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/mqtt.py +261 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/nat.py +115 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/neighbordiscovery.py +71 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/optical.py +60 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/packetcapturediagnostics.py +44 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/paths.pyi +11041 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/pcp.py +138 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/pdu.py +101 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/periodicfiletransfer.py +111 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/periodicstatistics.py +64 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ppp.py +112 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ptm.py +59 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/qos.py +272 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/radsecproxy.py +100 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/routeradvertisement.py +64 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/routing.py +297 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/schedules.py +39 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/security.py +51 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/selftestdiagnostics.py +24 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/services.py +22 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/sessionmanagement.py +171 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/sfps.py +216 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/smartcardreaders.py +49 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/softwaremodules.py +250 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/ssh.py +97 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/stomp.py +47 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/syslog.py +115 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/thread.py +202 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/time.py +113 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/trustedelements.py +61 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/unixdomainsockets.py +44 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/upa.py +128 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/upnp.py +171 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/usb.py +161 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/userinterface.py +128 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/users.py +87 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/uspagent.py +254 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/uspservices.py +44 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/vxlan.py +110 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/wifi.py +2307 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/wireguard.py +100 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/wwc.py +89 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/xmpp.py +71 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/xpon.py +283 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_cwmp/zigbee.py +250 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/__init__.py +20 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/atm.py +115 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/basapm.py +52 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/bridging.py +216 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/bulkdata.py +138 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/captiveportal.py +26 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/cellular.py +164 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/collectiondevice.py +38 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/connectionmonitoring.py +65 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/cwmpmanagementserver.py +23 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/device.py +321 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/deviceinfo.py +627 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/dhcpv4.py +285 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/dhcpv6.py +282 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/dlna.py +36 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/dns.py +278 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/docsis.py +285 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/dsl.py +616 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/dslite.py +41 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/dynamicdns.py +69 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ethernet.py +300 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/fap.py +257 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/fast.py +205 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/faultmgmt.py +104 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/firewall.py +316 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/fwe.py +68 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/gatewayinfo.py +51 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ghn.py +253 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/gre.py +122 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/hardware.py +152 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/homeplug.py +100 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/hosts.py +116 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/hpna.py +249 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ieee1905.py +412 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ieee8021x.py +113 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/interfacestack.py +27 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/iotcapability.py +304 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ip.py +622 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ipsec.py +232 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ipv6rd.py +40 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/l2tpv3.py +130 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/lanconfigsecurity.py +23 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/leds.py +64 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/lldp.py +81 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/lmap.py +340 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/localagent.py +588 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/logical.py +220 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/map.py +106 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/moca.py +545 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/mqtt.py +308 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/nat.py +115 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/neighbordiscovery.py +71 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/node.py +25 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/optical.py +70 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/paths.pyi +10607 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/pcp.py +138 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/pdu.py +101 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/periodicfiletransfer.py +130 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/periodicstatistics.py +103 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ppp.py +132 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/proxieddevice.py +41 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ptm.py +69 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/qos.py +272 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/radsecproxy.py +100 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/routeradvertisement.py +64 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/routing.py +317 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/schedules.py +39 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/security.py +155 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/services.py +22 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/sessionmanagement.py +171 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/sfps.py +216 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/smartcardreaders.py +59 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/softwaremodules.py +623 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/ssh.py +108 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/standby.py +24 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/stomp.py +47 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/syslog.py +122 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/thread.py +374 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/time.py +113 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/trustedelements.py +61 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/unixdomainsockets.py +44 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/upa.py +143 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/upnp.py +171 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/usb.py +193 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/userinterface.py +164 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/users.py +92 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/uspservices.py +44 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/vxlan.py +120 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/wifi.py +3280 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/wireguard.py +110 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/wwc.py +89 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/xmpp.py +71 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/xpon.py +305 -0
- bbfmodels-0.4.0/src/bbfmodels/tr181_usp/zigbee.py +260 -0
- bbfmodels-0.4.0/src/bbfmodels/tr196_cwmp/__init__.py +20 -0
- bbfmodels-0.4.0/src/bbfmodels/tr196_cwmp/accessmgmt.py +155 -0
- bbfmodels-0.4.0/src/bbfmodels/tr196_cwmp/capabilities.py +123 -0
- bbfmodels-0.4.0/src/bbfmodels/tr196_cwmp/cellconfig.py +2299 -0
- bbfmodels-0.4.0/src/bbfmodels/tr196_cwmp/fapcontrol.py +202 -0
- bbfmodels-0.4.0/src/bbfmodels/tr196_cwmp/fapservice.py +41 -0
- bbfmodels-0.4.0/src/bbfmodels/tr196_cwmp/paths.pyi +2476 -0
- bbfmodels-0.4.0/src/bbfmodels/tr196_cwmp/rem.py +364 -0
- bbfmodels-0.4.0/src/bbfmodels/tr196_cwmp/transport.py +150 -0
- bbfmodels-0.4.0/src/bbfmodels/tr196_usp/__init__.py +20 -0
- bbfmodels-0.4.0/src/bbfmodels/tr196_usp/accessmgmt.py +155 -0
- bbfmodels-0.4.0/src/bbfmodels/tr196_usp/capabilities.py +123 -0
- bbfmodels-0.4.0/src/bbfmodels/tr196_usp/cellconfig.py +2299 -0
- bbfmodels-0.4.0/src/bbfmodels/tr196_usp/fapcontrol.py +202 -0
- bbfmodels-0.4.0/src/bbfmodels/tr196_usp/fapservice.py +41 -0
- bbfmodels-0.4.0/src/bbfmodels/tr196_usp/paths.pyi +2476 -0
- bbfmodels-0.4.0/src/bbfmodels/tr196_usp/rem.py +364 -0
- bbfmodels-0.4.0/src/bbfmodels/tr196_usp/transport.py +150 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/__init__.py +20 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/accesscontrolcluster.py +175 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/accountlogincluster.py +71 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/actionscluster.py +242 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/activatedcarbonfiltermonitoringcluster.py +50 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/administratorcommissioningcluster.py +68 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/airqualitycluster.py +24 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/applicationbasiccluster.py +38 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/applicationlaunchercluster.py +103 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/audiooutputcluster.py +62 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/basicinformationcluster.py +88 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/bindingcluster.py +35 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/booleanstatecluster.py +31 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/booleanstateconfigurationcluster.py +71 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/bridgeddevicebasicinformationcluster.py +89 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/cameraavsettingsuserlevelmanagementcluster.py +180 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/cameraavstreammanagementcluster.py +420 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/carbondioxideconcentrationmeasurementcluster.py +33 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/carbonmonoxideconcentrationmeasurementcluster.py +33 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/channelcluster.py +274 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/chimecluster.py +46 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/closurecontrolcluster.py +112 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/closuredimensioncluster.py +95 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/colorcontrolcluster.py +394 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/commissionercontrolcluster.py +67 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/commoditymeteringcluster.py +35 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/commoditypricecluster.py +173 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/commoditytariffcluster.py +364 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/contentappobservercluster.py +39 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/contentcontrolcluster.py +350 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/contentlaunchercluster.py +241 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/descriptorcluster.py +49 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/deviceenergymanagementcluster.py +253 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/deviceenergymanagementmodecluster.py +37 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/diagnosticlogscluster.py +41 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/dishwasheralarmcluster.py +53 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/dishwashermodecluster.py +58 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/doorlockcluster.py +666 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/ecosysteminformationcluster.py +66 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/electricalenergymeasurementcluster.py +175 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/electricalgridconditionscluster.py +68 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/electricalpowermeasurementcluster.py +128 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/endpoint.py +26 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/energyevsecluster.py +222 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/energyevsemodecluster.py +37 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/energypreferencecluster.py +46 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/ethernetnetworkdiagnosticscluster.py +44 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/fabric.py +27 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/fancontrolcluster.py +50 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/fixedlabelcluster.py +33 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/flowmeasurementcluster.py +25 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/formaldehydeconcentrationmeasurementcluster.py +33 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/generalcommissioningcluster.py +100 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/generaldiagnosticscluster.py +120 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/groupkeymanagementcluster.py +113 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/groupscluster.py +108 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/hepafiltermonitoringcluster.py +50 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/icdmanagementcluster.py +87 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/identifycluster.py +52 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/illuminancemeasurementcluster.py +26 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/jointfabricadministratorcluster.py +103 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/jointfabricdatastorecluster.py +569 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/keypadinputcluster.py +36 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/laundrydryercontrolscluster.py +25 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/laundrywashercontrolscluster.py +27 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/laundrywashermodecluster.py +58 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/levelcontrolcluster.py +157 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/localizationconfigurationcluster.py +25 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/lowpowercluster.py +35 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/matterservice.py +433 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/mediainputcluster.py +87 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/mediaplaybackcluster.py +315 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/messagescluster.py +111 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/meteridentificationcluster.py +36 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/microwaveovencontrolcluster.py +61 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/microwaveovenmodecluster.py +23 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/modeselectcluster.py +61 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/network.py +11645 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/networkcommissioningcluster.py +166 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/nitrogendioxideconcentrationmeasurementcluster.py +33 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/occupancysensingcluster.py +32 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/onoffcluster.py +105 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/operationalcredentialscluster.py +202 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/operationalstatecluster.py +150 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/otasoftwareupdateprovidercluster.py +79 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/otasoftwareupdaterequestorcluster.py +81 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/ovencavityoperationalstatecluster.py +86 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/ovenmodecluster.py +37 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/ozoneconcentrationmeasurementcluster.py +33 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/paths.pyi +7262 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/pm10concentrationmeasurementcluster.py +33 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/pm1concentrationmeasurementcluster.py +33 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/pm25concentrationmeasurementcluster.py +33 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/powersourcecluster.py +79 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/powersourceconfigurationcluster.py +24 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/powertopologycluster.py +25 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/pressuremeasurementcluster.py +28 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/pumpconfigurationandcontrolcluster.py +148 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/pushavstreamtransportcluster.py +470 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/radonconcentrationmeasurementcluster.py +33 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/refrigeratoralarmcluster.py +40 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/refrigeratorandtemperaturecontrolledcabinetmodecluster.py +58 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/relativehumiditymeasurementcluster.py +25 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/rvccleanmodecluster.py +37 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/rvcoperationalstatecluster.py +106 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/rvcrunmodecluster.py +37 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/scenesmanagementcluster.py +213 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/serviceareacluster.py +109 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/smokecoalarmcluster.py +119 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/softwarediagnosticscluster.py +60 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/soilmeasurementcluster.py +50 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/switchcluster.py +77 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/targetnavigatorcluster.py +65 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/temperaturecontrolcluster.py +41 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/temperaturemeasurementcluster.py +25 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/thermostatcluster.py +235 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/thermostatuserinterfaceconfigurationcluster.py +26 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/threadborderroutermanagementcluster.py +80 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/threadnetworkdiagnosticscluster.py +177 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/threadnetworkdirectorycluster.py +75 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/timeformatlocalizationcluster.py +26 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/timesynchronizationcluster.py +187 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/tlscertificatemanagementcluster.py +184 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/tlsclientmanagementcluster.py +91 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/totalvolatileorganiccompoundsconcentrationmeasurementcluster.py +33 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/unitlocalizationcluster.py +25 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/userlabelcluster.py +33 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/valveconfigurationandcontrolcluster.py +75 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/wakeonlancluster.py +25 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/waterheatermanagementcluster.py +89 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/waterheatermodecluster.py +37 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/watertanklevelmonitoringcluster.py +50 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/webrtctransportprovidercluster.py +169 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/webrtctransportrequestorcluster.py +113 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/wifinetworkdiagnosticscluster.py +70 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/wifinetworkmanagementcluster.py +37 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/windowcoveringcluster.py +99 -0
- bbfmodels-0.4.0/src/bbfmodels/tr517_usp/zonemanagementcluster.py +203 -0
- bbfmodels-0.4.0/tests/fixtures/mini-usp-full.xml +43 -0
- bbfmodels-0.4.0/tests/test_commands.py +116 -0
- bbfmodels-0.4.0/uv.lock +558 -0
- bbfmodels-0.3.0/.release-please-manifest.json +0 -3
- bbfmodels-0.3.0/CHANGELOG.md +0 -32
- bbfmodels-0.3.0/PKG-INFO +0 -103
- bbfmodels-0.3.0/README.md +0 -78
- bbfmodels-0.3.0/context/README.md +0 -24
- bbfmodels-0.3.0/docs/guides/models.md +0 -146
- bbfmodels-0.3.0/docs/guides/paths.md +0 -86
- bbfmodels-0.3.0/docs/guides/runtime.md +0 -106
- bbfmodels-0.3.0/docs/index.md +0 -51
- bbfmodels-0.3.0/pyproject.toml +0 -63
- bbfmodels-0.3.0/src/bbfmodels/__init__.py +0 -16
- bbfmodels-0.3.0/src/bbfmodels/codec.py +0 -232
- bbfmodels-0.3.0/src/bbfmodels/generate.py +0 -329
- bbfmodels-0.3.0/src/bbfmodels/paths.py +0 -154
- bbfmodels-0.3.0/src/bbfmodels/schema.py +0 -152
- bbfmodels-0.3.0/src/bbfmodels/tr098/__init__.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr098/bulkdata.py +0 -51
- bbfmodels-0.3.0/src/bbfmodels/tr098/capabilities.py +0 -23
- bbfmodels-0.3.0/src/bbfmodels/tr098/captiveportal.py +0 -19
- bbfmodels-0.3.0/src/bbfmodels/tr098/deviceconfig.py +0 -17
- bbfmodels-0.3.0/src/bbfmodels/tr098/deviceinfo.py +0 -167
- bbfmodels-0.3.0/src/bbfmodels/tr098/dlna.py +0 -29
- bbfmodels-0.3.0/src/bbfmodels/tr098/dns.py +0 -51
- bbfmodels-0.3.0/src/bbfmodels/tr098/downloadavailability.py +0 -43
- bbfmodels-0.3.0/src/bbfmodels/tr098/downloaddiagnostics.py +0 -28
- bbfmodels-0.3.0/src/bbfmodels/tr098/fap.py +0 -317
- bbfmodels-0.3.0/src/bbfmodels/tr098/faultmgmt.py +0 -97
- bbfmodels-0.3.0/src/bbfmodels/tr098/firewall.py +0 -19
- bbfmodels-0.3.0/src/bbfmodels/tr098/internetgatewaydevice.py +0 -95
- bbfmodels-0.3.0/src/bbfmodels/tr098/ippingdiagnostics.py +0 -28
- bbfmodels-0.3.0/src/bbfmodels/tr098/lanconfigsecurity.py +0 -16
- bbfmodels-0.3.0/src/bbfmodels/tr098/landevice.py +0 -384
- bbfmodels-0.3.0/src/bbfmodels/tr098/laninterfaces.py +0 -39
- bbfmodels-0.3.0/src/bbfmodels/tr098/layer2bridging.py +0 -125
- bbfmodels-0.3.0/src/bbfmodels/tr098/layer3forwarding.py +0 -37
- bbfmodels-0.3.0/src/bbfmodels/tr098/managementserver.py +0 -147
- bbfmodels-0.3.0/src/bbfmodels/tr098/nslookupdiagnostics.py +0 -35
- bbfmodels-0.3.0/src/bbfmodels/tr098/paths.pyi +0 -2387
- bbfmodels-0.3.0/src/bbfmodels/tr098/periodicstatistics.py +0 -55
- bbfmodels-0.3.0/src/bbfmodels/tr098/queuemanagement.py +0 -226
- bbfmodels-0.3.0/src/bbfmodels/tr098/security.py +0 -32
- bbfmodels-0.3.0/src/bbfmodels/tr098/selftestdiagnostics.py +0 -17
- bbfmodels-0.3.0/src/bbfmodels/tr098/services.py +0 -15
- bbfmodels-0.3.0/src/bbfmodels/tr098/smartcardreader.py +0 -35
- bbfmodels-0.3.0/src/bbfmodels/tr098/softwaremodules.py +0 -96
- bbfmodels-0.3.0/src/bbfmodels/tr098/time.py +0 -29
- bbfmodels-0.3.0/src/bbfmodels/tr098/traceroutediagnostics.py +0 -35
- bbfmodels-0.3.0/src/bbfmodels/tr098/udpechoconfig.py +0 -28
- bbfmodels-0.3.0/src/bbfmodels/tr098/uploaddiagnostics.py +0 -28
- bbfmodels-0.3.0/src/bbfmodels/tr098/upnp.py +0 -154
- bbfmodels-0.3.0/src/bbfmodels/tr098/usbhosts.py +0 -72
- bbfmodels-0.3.0/src/bbfmodels/tr098/user.py +0 -21
- bbfmodels-0.3.0/src/bbfmodels/tr098/userinterface.py +0 -64
- bbfmodels-0.3.0/src/bbfmodels/tr098/wandevice.py +0 -650
- bbfmodels-0.3.0/src/bbfmodels/tr098/xmpp.py +0 -63
- bbfmodels-0.3.0/src/bbfmodels/tr104_1/__init__.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr104_1/capabilities.py +0 -91
- bbfmodels-0.3.0/src/bbfmodels/tr104_1/paths.pyi +0 -486
- bbfmodels-0.3.0/src/bbfmodels/tr104_1/phyinterface.py +0 -28
- bbfmodels-0.3.0/src/bbfmodels/tr104_1/voiceprofile.py +0 -508
- bbfmodels-0.3.0/src/bbfmodels/tr104_1/voiceservice.py +0 -24
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/__init__.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/callcontrol.py +0 -333
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/calllog.py +0 -199
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/capabilities.py +0 -117
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/clocksynchronization.py +0 -29
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/codecprofile.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/dect.py +0 -78
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/h323.py +0 -57
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/interwork.py +0 -66
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/isdn.py +0 -65
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/mgcp.py +0 -61
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/paths.pyi +0 -1195
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/pots.py +0 -101
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/reservedports.py +0 -17
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/sip.py +0 -246
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/terminal.py +0 -99
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/tone.py +0 -71
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/trunk.py +0 -28
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/voiceservice.py +0 -57
- bbfmodels-0.3.0/src/bbfmodels/tr104_cwmp/voipprofile.py +0 -83
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/__init__.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/callcontrol.py +0 -333
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/calllog.py +0 -199
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/capabilities.py +0 -117
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/clocksynchronization.py +0 -29
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/codecprofile.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/dect.py +0 -78
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/h323.py +0 -57
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/interwork.py +0 -66
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/isdn.py +0 -65
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/mgcp.py +0 -61
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/paths.pyi +0 -1177
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/pots.py +0 -83
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/reservedports.py +0 -17
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/sip.py +0 -246
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/terminal.py +0 -90
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/tone.py +0 -71
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/trunk.py +0 -28
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/voiceservice.py +0 -57
- bbfmodels-0.3.0/src/bbfmodels/tr104_usp/voipprofile.py +0 -83
- bbfmodels-0.3.0/src/bbfmodels/tr135_cwmp/__init__.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr135_cwmp/applications.py +0 -82
- bbfmodels-0.3.0/src/bbfmodels/tr135_cwmp/avplayers.py +0 -38
- bbfmodels-0.3.0/src/bbfmodels/tr135_cwmp/avstreams.py +0 -34
- bbfmodels-0.3.0/src/bbfmodels/tr135_cwmp/capabilities.py +0 -211
- bbfmodels-0.3.0/src/bbfmodels/tr135_cwmp/components.py +0 -433
- bbfmodels-0.3.0/src/bbfmodels/tr135_cwmp/paths.pyi +0 -823
- bbfmodels-0.3.0/src/bbfmodels/tr135_cwmp/servicemonitoring.py +0 -361
- bbfmodels-0.3.0/src/bbfmodels/tr135_cwmp/stbservice.py +0 -30
- bbfmodels-0.3.0/src/bbfmodels/tr135_usp/__init__.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr135_usp/applications.py +0 -79
- bbfmodels-0.3.0/src/bbfmodels/tr135_usp/avplayers.py +0 -37
- bbfmodels-0.3.0/src/bbfmodels/tr135_usp/avstreams.py +0 -34
- bbfmodels-0.3.0/src/bbfmodels/tr135_usp/capabilities.py +0 -211
- bbfmodels-0.3.0/src/bbfmodels/tr135_usp/components.py +0 -400
- bbfmodels-0.3.0/src/bbfmodels/tr135_usp/paths.pyi +0 -795
- bbfmodels-0.3.0/src/bbfmodels/tr135_usp/servicemonitoring.py +0 -358
- bbfmodels-0.3.0/src/bbfmodels/tr135_usp/stbservice.py +0 -30
- bbfmodels-0.3.0/src/bbfmodels/tr140_cwmp/__init__.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr140_cwmp/capabilities.py +0 -24
- bbfmodels-0.3.0/src/bbfmodels/tr140_cwmp/ftpserver.py +0 -29
- bbfmodels-0.3.0/src/bbfmodels/tr140_cwmp/httpserver.py +0 -22
- bbfmodels-0.3.0/src/bbfmodels/tr140_cwmp/httpsserver.py +0 -22
- bbfmodels-0.3.0/src/bbfmodels/tr140_cwmp/logicalvolume.py +0 -70
- bbfmodels-0.3.0/src/bbfmodels/tr140_cwmp/netinfo.py +0 -17
- bbfmodels-0.3.0/src/bbfmodels/tr140_cwmp/networkserver.py +0 -19
- bbfmodels-0.3.0/src/bbfmodels/tr140_cwmp/paths.pyi +0 -190
- bbfmodels-0.3.0/src/bbfmodels/tr140_cwmp/physicalmedium.py +0 -49
- bbfmodels-0.3.0/src/bbfmodels/tr140_cwmp/sftpserver.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr140_cwmp/storagearray.py +0 -22
- bbfmodels-0.3.0/src/bbfmodels/tr140_cwmp/storageservice.py +0 -47
- bbfmodels-0.3.0/src/bbfmodels/tr140_cwmp/useraccount.py +0 -22
- bbfmodels-0.3.0/src/bbfmodels/tr140_cwmp/usergroup.py +0 -18
- bbfmodels-0.3.0/src/bbfmodels/tr140_usp/__init__.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr140_usp/capabilities.py +0 -24
- bbfmodels-0.3.0/src/bbfmodels/tr140_usp/ftpserver.py +0 -29
- bbfmodels-0.3.0/src/bbfmodels/tr140_usp/httpserver.py +0 -22
- bbfmodels-0.3.0/src/bbfmodels/tr140_usp/httpsserver.py +0 -22
- bbfmodels-0.3.0/src/bbfmodels/tr140_usp/logicalvolume.py +0 -70
- bbfmodels-0.3.0/src/bbfmodels/tr140_usp/netinfo.py +0 -17
- bbfmodels-0.3.0/src/bbfmodels/tr140_usp/networkserver.py +0 -19
- bbfmodels-0.3.0/src/bbfmodels/tr140_usp/paths.pyi +0 -190
- bbfmodels-0.3.0/src/bbfmodels/tr140_usp/physicalmedium.py +0 -49
- bbfmodels-0.3.0/src/bbfmodels/tr140_usp/sftpserver.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr140_usp/storagearray.py +0 -22
- bbfmodels-0.3.0/src/bbfmodels/tr140_usp/storageservice.py +0 -47
- bbfmodels-0.3.0/src/bbfmodels/tr140_usp/useraccount.py +0 -22
- bbfmodels-0.3.0/src/bbfmodels/tr140_usp/usergroup.py +0 -18
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/__init__.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/atm.py +0 -93
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/basapm.py +0 -45
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/bridging.py +0 -199
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/bulkdata.py +0 -112
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/captiveportal.py +0 -19
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/cellular.py +0 -147
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/collectiondevice.py +0 -30
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/connectionmonitoring.py +0 -58
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/device.py +0 -199
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/deviceinfo.py +0 -364
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/dhcpv4.py +0 -237
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/dhcpv6.py +0 -234
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/dlna.py +0 -29
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/dns.py +0 -246
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/docsis.py +0 -248
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/dsl.py +0 -559
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/dslite.py +0 -34
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/dynamicdns.py +0 -62
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/ethernet.py +0 -231
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/etsim2m.py +0 -179
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/fap.py +0 -240
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/fast.py +0 -188
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/faultmgmt.py +0 -97
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/firewall.py +0 -309
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/fwe.py +0 -51
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/gatewayinfo.py +0 -18
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/ghn.py +0 -216
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/gre.py +0 -105
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/hardware.py +0 -99
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/homeplug.py +0 -83
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/hosts.py +0 -96
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/hpna.py +0 -225
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/ieee1905.py +0 -405
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/ieee8021x.py +0 -76
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/interfacestack.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/ip.py +0 -553
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/ipsec.py +0 -225
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/ipv6rd.py +0 -33
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/l2tpv3.py +0 -113
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/lanconfigsecurity.py +0 -16
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/leds.py +0 -57
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/lldp.py +0 -74
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/lmap.py +0 -333
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/logical.py +0 -135
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/managementserver.py +0 -204
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/map.py +0 -89
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/moca.py +0 -365
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/mqtt.py +0 -254
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/nat.py +0 -108
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/neighbordiscovery.py +0 -64
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/optical.py +0 -53
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/packetcapturediagnostics.py +0 -37
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/paths.pyi +0 -11041
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/pcp.py +0 -131
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/pdu.py +0 -94
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/periodicfiletransfer.py +0 -104
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/periodicstatistics.py +0 -57
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/ppp.py +0 -105
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/ptm.py +0 -52
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/qos.py +0 -265
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/radsecproxy.py +0 -93
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/routeradvertisement.py +0 -57
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/routing.py +0 -290
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/schedules.py +0 -32
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/security.py +0 -44
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/selftestdiagnostics.py +0 -17
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/services.py +0 -15
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/sessionmanagement.py +0 -164
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/sfps.py +0 -209
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/smartcardreaders.py +0 -42
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/softwaremodules.py +0 -243
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/ssh.py +0 -90
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/stomp.py +0 -40
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/syslog.py +0 -108
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/thread.py +0 -195
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/time.py +0 -106
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/trustedelements.py +0 -54
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/unixdomainsockets.py +0 -37
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/upa.py +0 -121
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/upnp.py +0 -164
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/usb.py +0 -154
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/userinterface.py +0 -121
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/users.py +0 -80
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/uspagent.py +0 -247
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/uspservices.py +0 -37
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/vxlan.py +0 -103
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/wifi.py +0 -2300
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/wireguard.py +0 -93
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/wwc.py +0 -82
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/xmpp.py +0 -64
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/xpon.py +0 -276
- bbfmodels-0.3.0/src/bbfmodels/tr181_cwmp/zigbee.py +0 -243
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/__init__.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/atm.py +0 -77
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/basapm.py +0 -45
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/bridging.py +0 -198
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/bulkdata.py +0 -113
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/captiveportal.py +0 -19
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/cellular.py +0 -146
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/collectiondevice.py +0 -31
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/connectionmonitoring.py +0 -58
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/cwmpmanagementserver.py +0 -16
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/device.py +0 -204
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/deviceinfo.py +0 -390
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/dhcpv4.py +0 -234
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/dhcpv6.py +0 -231
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/dlna.py +0 -29
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/dns.py +0 -219
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/docsis.py +0 -245
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/dsl.py +0 -469
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/dslite.py +0 -34
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/dynamicdns.py +0 -62
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/ethernet.py +0 -224
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/fap.py +0 -239
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/fast.py +0 -187
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/faultmgmt.py +0 -97
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/firewall.py +0 -309
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/fwe.py +0 -50
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/gatewayinfo.py +0 -21
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/ghn.py +0 -141
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/gre.py +0 -104
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/hardware.py +0 -99
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/homeplug.py +0 -82
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/hosts.py +0 -96
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/hpna.py +0 -118
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/ieee1905.py +0 -405
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/ieee8021x.py +0 -73
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/interfacestack.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/iotcapability.py +0 -196
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/ip.py +0 -201
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/ipsec.py +0 -225
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/ipv6rd.py +0 -33
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/l2tpv3.py +0 -112
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/lanconfigsecurity.py +0 -16
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/leds.py +0 -57
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/lldp.py +0 -74
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/lmap.py +0 -333
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/localagent.py +0 -357
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/logical.py +0 -132
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/map.py +0 -88
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/moca.py +0 -328
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/mqtt.py +0 -252
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/nat.py +0 -108
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/neighbordiscovery.py +0 -64
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/node.py +0 -18
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/optical.py +0 -52
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/paths.pyi +0 -10344
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/pcp.py +0 -131
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/pdu.py +0 -94
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/periodicfiletransfer.py +0 -105
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/periodicstatistics.py +0 -57
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/ppp.py +0 -103
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/proxieddevice.py +0 -34
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/ptm.py +0 -51
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/qos.py +0 -265
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/radsecproxy.py +0 -93
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/routeradvertisement.py +0 -57
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/routing.py +0 -285
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/schedules.py +0 -32
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/security.py +0 -45
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/services.py +0 -15
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/sessionmanagement.py +0 -164
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/sfps.py +0 -209
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/smartcardreaders.py +0 -41
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/softwaremodules.py +0 -253
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/ssh.py +0 -90
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/standby.py +0 -17
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/stomp.py +0 -40
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/syslog.py +0 -108
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/thread.py +0 -193
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/time.py +0 -106
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/trustedelements.py +0 -54
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/unixdomainsockets.py +0 -37
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/upa.py +0 -108
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/upnp.py +0 -164
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/usb.py +0 -152
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/userinterface.py +0 -120
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/users.py +0 -71
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/uspservices.py +0 -37
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/vxlan.py +0 -102
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/wifi.py +0 -2250
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/wireguard.py +0 -92
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/wwc.py +0 -82
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/xmpp.py +0 -64
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/xpon.py +0 -275
- bbfmodels-0.3.0/src/bbfmodels/tr181_usp/zigbee.py +0 -242
- bbfmodels-0.3.0/src/bbfmodels/tr196_cwmp/__init__.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr196_cwmp/accessmgmt.py +0 -148
- bbfmodels-0.3.0/src/bbfmodels/tr196_cwmp/capabilities.py +0 -116
- bbfmodels-0.3.0/src/bbfmodels/tr196_cwmp/cellconfig.py +0 -2292
- bbfmodels-0.3.0/src/bbfmodels/tr196_cwmp/fapcontrol.py +0 -195
- bbfmodels-0.3.0/src/bbfmodels/tr196_cwmp/fapservice.py +0 -31
- bbfmodels-0.3.0/src/bbfmodels/tr196_cwmp/paths.pyi +0 -2476
- bbfmodels-0.3.0/src/bbfmodels/tr196_cwmp/rem.py +0 -357
- bbfmodels-0.3.0/src/bbfmodels/tr196_cwmp/transport.py +0 -143
- bbfmodels-0.3.0/src/bbfmodels/tr196_usp/__init__.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr196_usp/accessmgmt.py +0 -148
- bbfmodels-0.3.0/src/bbfmodels/tr196_usp/capabilities.py +0 -116
- bbfmodels-0.3.0/src/bbfmodels/tr196_usp/cellconfig.py +0 -2292
- bbfmodels-0.3.0/src/bbfmodels/tr196_usp/fapcontrol.py +0 -195
- bbfmodels-0.3.0/src/bbfmodels/tr196_usp/fapservice.py +0 -31
- bbfmodels-0.3.0/src/bbfmodels/tr196_usp/paths.pyi +0 -2476
- bbfmodels-0.3.0/src/bbfmodels/tr196_usp/rem.py +0 -357
- bbfmodels-0.3.0/src/bbfmodels/tr196_usp/transport.py +0 -143
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/__init__.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/accesscontrolcluster.py +0 -88
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/accountlogincluster.py +0 -16
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/actionscluster.py +0 -43
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/activatedcarbonfiltermonitoringcluster.py +0 -31
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/administratorcommissioningcluster.py +0 -19
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/airqualitycluster.py +0 -17
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/applicationbasiccluster.py +0 -31
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/applicationlaunchercluster.py +0 -32
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/audiooutputcluster.py +0 -28
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/basicinformationcluster.py +0 -54
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/bindingcluster.py +0 -28
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/booleanstatecluster.py +0 -17
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/booleanstateconfigurationcluster.py +0 -23
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/bridgeddevicebasicinformationcluster.py +0 -41
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/cameraavsettingsuserlevelmanagementcluster.py +0 -64
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/cameraavstreammanagementcluster.py +0 -213
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/carbondioxideconcentrationmeasurementcluster.py +0 -26
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/carbonmonoxideconcentrationmeasurementcluster.py +0 -26
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/channelcluster.py +0 -54
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/chimecluster.py +0 -28
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/closurecontrolcluster.py +0 -39
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/closuredimensioncluster.py +0 -58
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/colorcontrolcluster.py +0 -68
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/commissionercontrolcluster.py +0 -17
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/commoditymeteringcluster.py +0 -28
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/commoditypricecluster.py +0 -73
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/commoditytariffcluster.py +0 -275
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/contentappobservercluster.py +0 -16
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/contentcontrolcluster.py +0 -86
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/contentlaunchercluster.py +0 -18
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/descriptorcluster.py +0 -42
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/deviceenergymanagementcluster.py +0 -92
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/deviceenergymanagementmodecluster.py +0 -16
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/diagnosticlogscluster.py +0 -16
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/dishwasheralarmcluster.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/dishwashermodecluster.py +0 -37
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/doorlockcluster.py +0 -61
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/ecosysteminformationcluster.py +0 -59
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/electricalenergymeasurementcluster.py +0 -104
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/electricalgridconditionscluster.py +0 -43
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/electricalpowermeasurementcluster.py +0 -98
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/endpoint.py +0 -19
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/energyevsecluster.py +0 -39
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/energyevsemodecluster.py +0 -16
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/energypreferencecluster.py +0 -39
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/ethernetnetworkdiagnosticscluster.py +0 -25
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/fabric.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/fancontrolcluster.py +0 -28
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/fixedlabelcluster.py +0 -26
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/flowmeasurementcluster.py +0 -18
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/formaldehydeconcentrationmeasurementcluster.py +0 -26
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/generalcommissioningcluster.py +0 -35
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/generaldiagnosticscluster.py +0 -40
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/groupkeymanagementcluster.py +0 -39
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/groupscluster.py +0 -17
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/hepafiltermonitoringcluster.py +0 -31
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/icdmanagementcluster.py +0 -36
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/identifycluster.py +0 -18
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/illuminancemeasurementcluster.py +0 -19
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/jointfabricadministratorcluster.py +0 -17
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/jointfabricdatastorecluster.py +0 -219
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/keypadinputcluster.py +0 -16
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/laundrydryercontrolscluster.py +0 -18
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/laundrywashercontrolscluster.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/laundrywashermodecluster.py +0 -37
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/levelcontrolcluster.py +0 -26
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/localizationconfigurationcluster.py +0 -18
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/lowpowercluster.py +0 -16
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/matterservice.py +0 -423
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/mediainputcluster.py +0 -29
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/mediaplaybackcluster.py +0 -99
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/messagescluster.py +0 -41
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/meteridentificationcluster.py +0 -29
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/microwaveovencontrolcluster.py +0 -24
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/microwaveovenmodecluster.py +0 -16
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/modeselectcluster.py +0 -41
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/network.py +0 -4217
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/networkcommissioningcluster.py +0 -36
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/nitrogendioxideconcentrationmeasurementcluster.py +0 -26
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/occupancysensingcluster.py +0 -18
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/onoffcluster.py +0 -21
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/operationalcredentialscluster.py +0 -44
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/operationalstatecluster.py +0 -39
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/otasoftwareupdateprovidercluster.py +0 -16
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/otasoftwareupdaterequestorcluster.py +0 -29
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/ovencavityoperationalstatecluster.py +0 -39
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/ovenmodecluster.py +0 -16
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/ozoneconcentrationmeasurementcluster.py +0 -26
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/paths.pyi +0 -6314
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/pm10concentrationmeasurementcluster.py +0 -26
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/pm1concentrationmeasurementcluster.py +0 -26
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/pm25concentrationmeasurementcluster.py +0 -26
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/powersourcecluster.py +0 -48
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/powersourceconfigurationcluster.py +0 -17
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/powertopologycluster.py +0 -18
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/pressuremeasurementcluster.py +0 -21
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/pumpconfigurationandcontrolcluster.py +0 -39
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/pushavstreamtransportcluster.py +0 -99
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/radonconcentrationmeasurementcluster.py +0 -26
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/refrigeratoralarmcluster.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/refrigeratorandtemperaturecontrolledcabinetmodecluster.py +0 -37
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/relativehumiditymeasurementcluster.py +0 -18
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/rvccleanmodecluster.py +0 -16
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/rvcoperationalstatecluster.py +0 -39
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/rvcrunmodecluster.py +0 -16
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/scenesmanagementcluster.py +0 -30
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/serviceareacluster.py +0 -74
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/smokecoalarmcluster.py +0 -29
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/softwarediagnosticscluster.py +0 -32
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/soilmeasurementcluster.py +0 -43
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/switchcluster.py +0 -19
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/targetnavigatorcluster.py +0 -27
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/temperaturecontrolcluster.py +0 -20
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/temperaturemeasurementcluster.py +0 -18
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/thermostatcluster.py +0 -127
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/thermostatuserinterfaceconfigurationcluster.py +0 -19
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/threadborderroutermanagementcluster.py +0 -22
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/threadnetworkdiagnosticscluster.py +0 -143
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/threadnetworkdirectorycluster.py +0 -29
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/timeformatlocalizationcluster.py +0 -19
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/timesynchronizationcluster.py +0 -57
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/tlscertificatemanagementcluster.py +0 -39
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/tlsclientmanagementcluster.py +0 -31
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/totalvolatileorganiccompoundsconcentrationmeasurementcluster.py +0 -26
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/unitlocalizationcluster.py +0 -18
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/userlabelcluster.py +0 -26
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/valveconfigurationandcontrolcluster.py +0 -27
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/wakeonlancluster.py +0 -18
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/waterheatermanagementcluster.py +0 -22
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/waterheatermodecluster.py +0 -16
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/watertanklevelmonitoringcluster.py +0 -31
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/webrtctransportprovidercluster.py +0 -31
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/webrtctransportrequestorcluster.py +0 -31
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/wifinetworkdiagnosticscluster.py +0 -29
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/wifinetworkmanagementcluster.py +0 -18
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/windowcoveringcluster.py +0 -30
- bbfmodels-0.3.0/src/bbfmodels/tr517_usp/zonemanagementcluster.py +0 -71
- bbfmodels-0.3.0/tests/fixtures/mini-usp-full.xml +0 -40
- bbfmodels-0.3.0/uv.lock +0 -558
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/.github/workflows/announce-release.yml +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/.github/workflows/ci.yml +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/.github/workflows/docs.yml +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/.github/workflows/pr-title.yml +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/.github/workflows/publish.yml +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/.github/workflows/release-please.yml +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/.gitignore +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/.python-version +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/CLAUDE.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/CONTRIBUTING.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/LICENSE +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/Makefile +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/NOTICE +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/context/decisions/0001-one-parser-one-ir-several-emitters.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/context/decisions/0002-names-stay-as-the-forum-wrote-them.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/context/decisions/0003-parse-the-flattened-full-documents.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/context/decisions/0004-generated-output-is-committed.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/context/decisions/0005-python-models-are-pydantic.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/context/decisions/0006-everything-optional-unknown-paths-kept.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/context/decisions/0007-vendor-extensions-are-overlays.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/context/decisions/0008-python-toolchain.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/context/decisions/0009-the-tree-keeps-wire-text.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/context/decisions/0010-generated-python-packages.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/context/decisions/0011-typed-paths-are-a-stub-over-the-schema.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/docs/assets/images/ispx-icon.png +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/docs/assets/js/copy-code.js +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/docs/assets/js/powered-by.js +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/docs/assets/stylesheets/extra.css +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/docs/changelog.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/docs/guides/cli.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/docs/guides/documents.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/docs/guides/quickstart.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/docs/guides/vendor-models.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/hooks/announce.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/hooks/changelog.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/hooks/test_announce.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/hooks/test_changelog.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/mkdocs.yml +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/release-notes/0.1.0.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/release-notes/0.2.0.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/release-notes/0.2.1.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/release-notes/0.3.0.md +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/release-please-config.json +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/requirements.txt +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/scripts/bootstrap.sh +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/cli.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/ir.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/model.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/parser.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/py.typed +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/sources.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr098/ir.json.gz +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr098/paths.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr104_1/ir.json.gz +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr104_1/paths.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr104_cwmp/ir.json.gz +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr104_cwmp/paths.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr104_usp/ir.json.gz +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr104_usp/paths.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr135_cwmp/ir.json.gz +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr135_cwmp/paths.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr135_usp/ir.json.gz +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr135_usp/paths.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr140_cwmp/ir.json.gz +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr140_cwmp/paths.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr140_usp/ir.json.gz +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr140_usp/paths.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr181_cwmp/ir.json.gz +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr181_cwmp/paths.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr181_usp/ir.json.gz +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr181_usp/paths.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr196_cwmp/ir.json.gz +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr196_cwmp/paths.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr196_usp/ir.json.gz +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr196_usp/paths.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr517_usp/ir.json.gz +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tr517_usp/paths.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/src/bbfmodels/tree.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/tests/fixtures/mini-cwmp-full.xml +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/tests/fixtures/mini-service-full.xml +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/tests/test_cli.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/tests/test_codec.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/tests/test_documents.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/tests/test_generate.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/tests/test_parser.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/tests/test_paths.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/tests/test_schema.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/tests/test_tree.py +0 -0
- {bbfmodels-0.3.0 → bbfmodels-0.4.0}/wrangler.jsonc +0 -0
|
@@ -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))
|
bbfmodels-0.4.0/PKG-INFO
ADDED
|
@@ -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,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.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Typed paths
|
|
2
|
+
|
|
3
|
+
Most code that talks to an ACS or a USP controller never builds a tree of
|
|
4
|
+
values. It asks an API for `Device.WiFi.SSID.1.SSID` by name and reads a
|
|
5
|
+
string back. Typed paths make that name a chain of attributes an editor
|
|
6
|
+
completes and a type checker verifies, with no model involved:
|
|
7
|
+
|
|
8
|
+
```python
|
|
9
|
+
from bbfmodels.tr181_cwmp.paths import Device
|
|
10
|
+
|
|
11
|
+
str(Device.WiFi.SSID[1].SSID) # 'Device.WiFi.SSID.1.SSID'
|
|
12
|
+
str(Device.IP.Interface[1].IPv4Address[2].IPAddress)
|
|
13
|
+
Device.WiFi.Radio[2].Channel == "Device.WiFi.Radio.2.Channel" # True
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Every shipped package has a `paths` module whose root is the model's root
|
|
17
|
+
object. A table is indexed by instance number; the table itself renders as
|
|
18
|
+
the partial path CWMP uses to ask for all of it, and `search` gives the USP
|
|
19
|
+
search path:
|
|
20
|
+
|
|
21
|
+
```python
|
|
22
|
+
str(Device.WiFi.Radio) # 'Device.WiFi.Radio.'
|
|
23
|
+
Device.WiFi.Radio.search # 'Device.WiFi.Radio.*.'
|
|
24
|
+
Device.WiFi.Radio.schema_path # 'Device.WiFi.Radio.{i}.'
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
A path knows its definition in the shipped schema, so the type, access,
|
|
28
|
+
constraints and description of a parameter are one attribute away:
|
|
29
|
+
|
|
30
|
+
```python
|
|
31
|
+
channel = Device.WiFi.Radio[1].Channel
|
|
32
|
+
channel.definition.syntax.base_type # <BaseType.UNSIGNED_INT: 'unsignedInt'>
|
|
33
|
+
channel.definition.access # <Access.READ_WRITE: 'readWrite'>
|
|
34
|
+
channel.definition.syntax.facets.ranges # (Range(min_inclusive=1, max_inclusive=255, step=None),)
|
|
35
|
+
channel.definition.description[:60]
|
|
36
|
+
Device.WiFi.Radio.definition.num_entries_parameter # 'RadioNumberOfEntries'
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Paths compare and hash as their string, so they work as dictionary keys
|
|
40
|
+
and in sets alongside plain strings.
|
|
41
|
+
|
|
42
|
+
## Editors and type checkers
|
|
43
|
+
|
|
44
|
+
At runtime one generic class walks the schema, so the `paths` module is
|
|
45
|
+
three lines and costs nothing to import. Beside it, `paths.pyi` is a stub
|
|
46
|
+
that declares every object and parameter with the Python type of its
|
|
47
|
+
value, which is what the editor completes and the type checker reads:
|
|
48
|
+
|
|
49
|
+
```python
|
|
50
|
+
class WiFi_RadioPath(ObjectPathBase):
|
|
51
|
+
Enable: ParamPath[bool]
|
|
52
|
+
Channel: ParamPath[int]
|
|
53
|
+
SupportedFrequencyBands: ParamPath[list[str]]
|
|
54
|
+
Stats: WiFi_Radio_StatsPath
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
A typo is caught twice: the type checker rejects `Device.WiFi.Radioo`, and
|
|
58
|
+
at runtime it raises `AttributeError` naming the object that has no such
|
|
59
|
+
member.
|
|
60
|
+
|
|
61
|
+
## Commands and events
|
|
62
|
+
|
|
63
|
+
In the USP packages a command or event is a member like any other, named
|
|
64
|
+
without its suffix and rendered with it:
|
|
65
|
+
|
|
66
|
+
```python
|
|
67
|
+
from bbfmodels.tr181_usp.paths import Device
|
|
68
|
+
|
|
69
|
+
str(Device.IP.Diagnostics.TraceRoute) # 'Device.IP.Diagnostics.TraceRoute()'
|
|
70
|
+
Device.IP.Diagnostics.TraceRoute.definition.is_async # True
|
|
71
|
+
str(Device.Boot) # 'Device.Boot!'
|
|
72
|
+
str(Device.child("Reboot()")) # the same by its full name
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
When a parameter or object already has the bare name, the command or event
|
|
76
|
+
takes a trailing underscore: Matter's `ValveFault` parameter sits beside
|
|
77
|
+
its `ValveFault!` event, reached as `ValveFault_`.
|
|
78
|
+
|
|
79
|
+
## Names the schema does not know
|
|
80
|
+
|
|
81
|
+
A vendor parameter whose document was not generated is reached
|
|
82
|
+
explicitly, so a typo in a standard name is never silently taken for one:
|
|
83
|
+
|
|
84
|
+
```python
|
|
85
|
+
str(Device.WiFi.Radio[1].child("X_ACME_TxPower")) # 'Device.WiFi.Radio.1.X_ACME_TxPower'
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Generate the vendor's document instead and the name completes like any
|
|
89
|
+
other; see [vendor models](vendor-models.md). A Forum name that is not a
|
|
90
|
+
Python identifier is exposed the way the models expose it, `N11kEnable` for
|
|
91
|
+
`11kEnable`, and renders the Forum's spelling.
|
|
92
|
+
|
|
93
|
+
## Service models
|
|
94
|
+
|
|
95
|
+
A service model's root is a table, and the document does not say where a
|
|
96
|
+
device mounts it, so its paths render from the document's root. Prefix the
|
|
97
|
+
mount when calling an API:
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
from bbfmodels.tr104_cwmp.paths import VoiceService
|
|
101
|
+
|
|
102
|
+
str(VoiceService[1].Capabilities.MaxLineCount) # 'VoiceService.1.Capabilities.MaxLineCount'
|
|
103
|
+
"Device.Services." + str(VoiceService[1].Capabilities.MaxLineCount)
|
|
104
|
+
```
|